JavaCV giving java.lang.UnsatisfiedLinkError
Alright, you may say "use google search for this, there are millions of them". However, I almost spent all day just to run following code but every since I tried I got java.lang.UnsatisfiedLinkError: C:\Users\hp\AppData\Local\Temp\jniopencv_core2477828805078034839.dll: Can't find dependent libraries error which drives me mad.
I found javacv-bin folder which includes javacpp.jar, javacv.jar, javacv-windows-x86.jar, javacv-windows-x86_64.jar.
In Netbeans, I opened project properties and I added them into the libraries
I found 开发者_如何学PythonOpenCV2.3 folder, copied and pasted it into C:\ directory.
I added C:\OpenCV2.3\build\bin; C:\OpenCV2.3\build\x86\vc10\bin; C:\OpenCV2.3\build\x64\vc10\bin; in the PATH.
And I believe nothing to do left. However, every since I tried I got the same error. I'm exhausted please someone help me.
And last to say, I have both 32-bit and 64-bit JDKs so I tried both compilers but it's no use.
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;
public class Smoother {
    public static void main(String[] args) {
        smooth("filename0.png");
    }
    public static void smooth(String filename) {
        System.out.println("java.library.path="+System.getProperty("java.library.path"));
        IplImage image = cvLoadImage(filename);
        if (image != null) {
            cvSmooth(image, image, CV_GAUSSIAN, 3);
            cvSaveImage(filename, image);
            cvReleaseImage(image);
        }
    }
}
I had the same problem as you did. Assuming your openCV folder location is C:\OpenCV2.3, here is what to do.
- Create path and classpath variables under both user AND system environment variables. 
- Append this to all four variables(Assuming you have the latest version of openCV2.3): - C:\OpenCV2.3\build\bin;C:\OpenCV2.3\build\x64\mingw\bin;C:\OpenCV2.3\build\x64\vc9\bin;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\x86\mingw\bin;C:\OpenCV2.3\build\x86\vc9\bin;C:\OpenCV2.3\build\x86\vc10\bin;
Hope it helps! Aravind
Two Tips:
- You can't mix 64 and x86 libraries in the pathes!
- restart Eclipse
I have never worked with OpenCV ,but somehow I made my JNI code work.Have you generated the .dll or it comes with the package? And check this post ,it may Ohelp JNI error while calling a C subroutine ... One more suggestion try putting your dll in system32 folder and then load it manually using System.load(path/to/dll) method...Happy coding
If anybody have this problem and updating system path and class path didn't solve, rename your OpenCv2.3.1 directory to "opencv". It did solve my problem.
 加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论