Ask Your Question

Revision history [back]

Including nonfree module in eclipse openCV 3.0 project

I want to use some functionality from nonfree library so I added javacv to my maven project and I have installed opencv_contrib package.

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

As a result I have opencv_xfeatures2d.class as a part of opencv-3.0.0-1.1.jar library. I have following import:

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

in my project. The library is added properly because following

SURF surf = new SURF();

line (ctrl + left mouse button) it redirects me to proper function inside opencv_xfeatures2d file. But when I try to compile project I get following error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_xfeatures2d in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:597) at org.bytedeco.javacpp.Loader.load(Loader.java:438) at org.bytedeco.javacpp.Loader.load(Loader.java:381) at org.bytedeco.javacpp.opencv_xfeatures2d.(opencv_xfeatures2d.java:19) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.bytedeco.javacpp.Loader.load(Loader.java:413) at org.bytedeco.javacpp.Loader.load(Loader.java:381) at org.bytedeco.javacpp.opencv_xfeatures2d$SURF.(opencv_xfeatures2d.java:489) at mypr.rec.Clsm.Cmpr(Clsm.java:18) at mypr.mn.Main.main(Main.java:21) Caused by: java.lang.UnsatisfiedLinkError: /tmp/javacpp8449996504597/libjniopencv_xfeatures2d.so: /usr/local/lib/libopencv_calib3d.so.3.0: undefined symbol: 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

The strange thing is that it says about jniopencv_xfeatures2d instead of opencv_xfeatures2d. What am I doing wrong?