我想使用非自由库中的一些功能,所以我将javacv添加到我的maven项目中,并且我已经安装了opencv_contrib包 .

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>1.1</version>
</dependency>

因此,我将opencv_xfeatures2d.class作为opencv-3.0.0-1.1.jar库的一部分 .

我有以下导入:

import static org.bytedeco.javacpp.opencv_xfeatures2d.*;

在我的项目中 . 由于以下原因,库已正确添加

SURF surf = new SURF();

line(ctrl鼠标左键)它将我重定向到opencv_xfeatures2d文件中的正常功能 . 但是当我尝试编译项目时,我得到以下错误:

线程“main”中的异常java.lang.UnsatisfiedLinkError:java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)中的java.library.path中没有jniopencv_xfeatures2d,位于java.lang.Runtime.loadLibrary0(Runtime.java:870 )在org.bytedeco.javadpp.Lavader.load(Loader.java:438)的org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:597)的java.lang.System.loadLibrary(System.java:1122) at org.bytedeco.javacpp.Loader.load(Loader.java:381)atg.bytedeco.javacpp.opencv_xfeatures2d . (opencv_xfeatures2d.java:19)at java.lang的java.lang.Class.forName0(Native Method) . 位于org.bytedeco.javacpp.Laader.load(Loader.java:381)的org.bytedeco.javad上的org.bytedeco.javacpp.Loader.load中的Class.forName(Class.java:348)org.bytedeco.javacpp .opencv_xfeatures2d $ SURF . (opencv_xfeatures2d.java:489)atpr.rec.Clsm.Cmpr(Clsm.java:18)at mypr.mn.Main.main(Main.java:21)引起:java.lang.UnsatisfiedLinkError :/tmp/javacpp8449996504597/libjniopencv_xfeatures2d.so:/usr/local/lib/libopencv_calib3d.so.3.0:undefined sym bol:ippicvJumpIndexForMergedLibs at java.lang.ClassLoader $ NativeLibrary.load(Native Method)at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821)at java . lang.Runtime.load0(Runtime.java:809)at java.lang.System.load(System.java:1086)at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:580)... 10 more

奇怪的是它说的是 jniopencv _xfeatures2d而不是 opencv _xfeatures2d . 我究竟做错了什么?