OpenCV Classpath in Netbeans



我刚开始在MacOSX下使用JavaCV。我使用最新来源的CMake编译了OpenCV,并将库所在的路径放入-Djava.library.path=pathtolibraries JVM参数中,并在我的项目设置中添加了JavaCV库。我还尝试了其他几种Classpath变体。但当我启动一个简单的项目,只从我的网络摄像头中获取一张图像时,我会出现以下错误:

Exception in thread "Thread-3" java.lang.UnsatisfiedLinkError: no jnivideoInputLib in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at com.googlecode.javacpp.Loader.load(Loader.java:358)
    at com.googlecode.javacpp.Loader.load(Loader.java:285)
    at com.googlecode.javacv.cpp.videoInputLib.<clinit>(videoInputLib.java:80)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.googlecode.javacpp.Loader.load(Loader.java:305)
    at com.googlecode.javacpp.Loader.load(Loader.java:285)
    at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:192)
    at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:89)
    at webcampong.Grabber.run(Grabber.java:35)
    at java.lang.Thread.run(Thread.java:680)

这是由于openCV和javaCV库的兼容性问题。尝试下载兼容的openCV库(包含bin文件夹)。

VideoInputFrameGrabber仅在Windows下工作。

如JavaCV的README.txt所述:

  • 使用DirectShow捕获新的videoInputLib包装和相应的VideoInputFrameGrabber,在Windows 7下很有用,其中OpenCV和FFmpeg可能无法使用Windows视频捕获(问题#58)

我使用javacpp和视频输入来操作相机。当我调用"videoInput.listDevices()"时,我得到了错误"java.lang.UnsisfiedLinkError:java.library.path中没有jnivideoInputLib"。我通过添加以下代码来解决问题:

org.bytedeco.javacpp.Loader.load(org.bytedeco.javacpp.opencv_highgui.class);
System.out.println(videoInput.listDevices());

在调用其他方法之前,必须先调用Loader.load,我不知道为什么。

相关内容

  • 没有找到相关文章

最新更新