2012-05-23 75 views
1

我想以简单的方式将我的摄像头捕获到Java中。 我跟着这个教程,JavaCV和OpenCV:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/12/opencv-javacv-eclipse-project.htmlJavaCV-OpenCV错误

尝试一些示例代码时,我得到这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Francis\AppData\Local\Temp\jniopencv_core7109340164936655704.dll: Can't find dependent libraries 
     at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
     at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) 
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703) 
     at java.lang.Runtime.load0(Runtime.java:770) 
     at java.lang.System.load(System.java:1003) 
     at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:403) 
     at com.googlecode.javacpp.Loader.load(Loader.java:342) 
     at com.googlecode.javacpp.Loader.load(Loader.java:316) 
     at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:131) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:247) 
     at com.googlecode.javacpp.Loader.load(Loader.java:335) 
     at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:96) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:247) 
     at com.googlecode.javacpp.Loader.load(Loader.java:335) 
     at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:91) 
     at com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171) 
     at beeldherkenningp1.CaptureImage.captureFrame(CaptureImage.java:13) 
     at beeldherkenningp1.BeeldherkenningP1.main(BeeldherkenningP1.java:37) 

但人我罐子的都包括在内,则安装了Microsoft Visual C++ 2010可再发行组件包,提取的OpenCV进入根目录并且我的系统路径设置正确...(已尝试多次重新安装Visual C++可再发行组件包)。 (x64位,这是否重要Netbeans是x86?)

或者有没有人知道另一个lib,很容易捕获java中的凸轮?

非常感谢!

+1

如果在86 JVM上运行你的代码,你需要的redistribuables x86版本,以及的OpenCV。 – Romain

+0

现在,我已经安装了Microsoft Visual C++ Redistr软件包的x64和x86,可否给您带来麻烦? – francisMi

+1

它不应该。只需要JVM使用的任何体系结构都可用 - 其他可用的体系结构不会造成麻烦。 – Romain

回答

0

我是编写你正在关注的教程的人。

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
C:\Users\Francis\AppData\Local\Temp\jniopencv_core7109340164936655704.dll: 
Can't find dependent libraries 

它看起来像dll库不在环境变量路径,因为你没有正确添加opencv的路径。或者这可能是问题,因为您已经安装了Romain所说的Visual C++可再发行版的x64和x86版本。

我建议你按照我在这里描述的步骤JavaCV:eclipse project configuration windows?并将以下内容添加到系统路径中?

配置路径

64-bit version of the JDK: 
[installation path]\build\common\tbb\intel64\vc10\;C:\opencv\build\x64\vc10\bin\; 
32-bit version of the JDK: 
[installation path]\build\common\tbb\ia32\vc10\;C:\opencv\build\x86\vc10\bin\; 

这里[installation path]可能是"C:\opencv"

希望这有助于。

UPDATE:

一种更容易和更简单的步骤以配置JavaCV可用。请检查下面的链接:

+1

问题是我认为我的JDK是64位的(因为64位窗口),但netbeans告诉我这是x86 ... http://i.imgur.com/Srkve.png AND在重新启动计算机后适应路径! – francisMi

+0

你解决了这个问题吗? – gtiwari333

+0

是的!现在它工作了!但是现在我遇到了这个问题:第一次在计算机重新启动后运行该程序,它工作得很好。但它只有一次,当我停止运行程序,并再次运行,它不会工作,我得到一个空的CanvasFrame ...你有这个问题的想法?谢谢! (我使用此代码:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/12/javacv-capture-save-flip-show-live.html) – francisMi