我如何包含要包含在Net.readfromtensorflow中的数据集的路径。我不断收到UnsatisfiedLinkError错误。将数据集放置在静态目录中。我引用了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 春季版5.1 opencv 4.0.1
答案 0 :(得分:1)
您使用哪个Maven依赖项?您可以将javacpp-presets用于opencv(https://github.com/bytedeco/javacpp-presets/tree/master/opencv)。您要做的就是将Maven依赖项(https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv-platform)添加到pom中。依赖项包括每个平台(Windows,Linux,Mac ..)所需的系统库。在使用opencv(org.opencv包命名空间中的类)之前,必须先调用
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文件的目录“数据集”。数据集目录应直接位于资源目录下。