我如何将要包含在Net.readfromtensorflow中的数据集的路径包括在内。我一直收到不满意的链接错误。数据集放在静态目录中。我引用spring-doc中的话:“默认情况下,spring Boot从类路径中名为/static(或/public或/resources或/META-INF/resources)的目录或ServletContext的根目录提供静态内容”
使用的代码:
Net net = Dnn.readNetFromTensorflow("/dataset/frozen_east_text_detection.pb");
完全错误:出现意外错误(类型=内部服务器错误,状态=500)。org.opencv.dnn.Dnn.readNetFromTensorflow_1(Ljava/lang/String;)J java.lang.UnsatisfiedLinkError: org.opencv.dnn.Dnn.readNetFromTensorflow_1(Ljava/lang/String;)J
使用spring boot 2.0 spring版本5.1 opencv 4.0.1
你用的是哪个maven依赖?您可以使用opencv的javacpp-presets(https://github . com/byte deco/javacpp-presets/tree/master/opencv)。你要做的就是把maven依赖项(https://mvnrepository . com/artifact/org . byte deco . javacpp-presets/opencv-platform)添加到你的pom中。依赖性包括每个平台(windows、linux、mac)所需的系统库..).在使用opencv(org . opencv包名称空间中的类)之前,您必须调用
< code > static { loader . load(opencv _ Java . class);}
在此调用之后,应该可以使用opencv api。java.lang.UnsatisfiedLinkError
应该消失了。这个错误与Spring无关。这是必须加载的 opencv 所需的库的问题。要加载 east_text_detection.pb 文件,您可以使用如下所示的内容:
String location = new File(this.getClass().getClassLoader().getResource("/dataset/frozen_east_text_detection.pb").toURI()).getPath();
Net net = Dnn.readNetFromTensorflow(location);
这需要一个带有。pb文件。数据集目录应该直接位于资源目录下。