我尝试使用JavaCV在eclipse中实现一个程序。以下是示例代码
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 JavaCVProj01
{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
IplImage img = cvLoadImage("Paris.jpeg");
cvShowImage("Paris",img);
cvSmooth(img,img,CV_GAUSSIAN,13);
cvShowImage("BlurImage",img);
cvWaitKey();
cvReleaseImage(img);
}
}
当我运行程序时,我得到一个异常
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Bhavana\AppData\Local\Temp\javacpp34629596157210\jniopencv_core.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:566)
at com.googlecode.javacpp.Loader.load(Loader.java:489)
at com.googlecode.javacpp.Loader.load(Loader.java:431)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
at demo.main(demo.java:13)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_core244 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
at com.googlecode.javacpp.Loader.load(Loader.java:481)
... 11 more
我也为环境变量提供了正确的路径。 我还从javacv-bin添加了外部Jar文件。 我给的路径是 CLASSPATH d:\ OpenCV的\建设\ 86 \ VC10 \ LIB d:\ OpenCV的\建设\ COMMON \ TBB \ IA32 \ VC10 d:\的OpenCV \建立\ 86 \ VC10 \ staticlib
PATH d:\ OpenCV的\建设\ COMMON \ TBB \ IA32 \ VC10 d:\的OpenCV \建立\ 86 \ VC10 \ BIN
我该怎么办?我还要添加哪些依赖库?
答案 0 :(得分:1)
只需将opencv目录复制到C:\驱动器即可解决此问题。与设置所有路径相比,这可能是最简单的方法。这在JavaCV文档的某处提到(现在找不到)。
答案 1 :(得分:1)
如果您的OpenCV版本与JavaCV-Bin不兼容,则会发生这些错误。
例如:
OpenCV 2.4.0和JAVA-BIN 0.2 =不兼容
OpenCV 2.4.3和JAVA-BIN 0.3 =兼容
确保在安装后重新启动
答案 2 :(得分:0)
你的PATH不应该是这样的:
D:\opencv\build\common\tbb\ia32\vc10 D:\opencv\build\x86\vc10\bin
但是像这样:
"D:\opencv\build\common\tbb\ia32\vc10";"D:\opencv\build\x86\vc10\bin"
(注意分号而不是空格)
同样适用于CLASSPATH!
答案 3 :(得分:0)
几乎same question我回答了。
您应该将opencv_java244.dll
的路径添加到%PATH%
环境变量。