2012-02-04 86 views
1

我剛剛在MacOSX下開始使用JavaCV。我使用最新源代碼的CMake編譯OpenCV,並將庫的路徑放入-Djava.library.path=\path\to\libraries JVM參數中,並在項目設置中添加了JavaCV庫。我還嘗試了其他幾種Classpath的變體。但是,當我推出一個簡單的項目,只是抓住我獲得以下錯誤,從我的攝像頭一個圖像:Netbeans中的OpenCV類路徑

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) 
+0

也許這樣? http://stackoverflow.com/questions/2550571/loading-jni-lib-on-mac-os-x – Bill 2012-02-05 06:09:52

+0

不,我已經試過了。 W/Windows和Linux它工作正常。但是因爲我是馬科斯新手,我不確定我是否以正確的方式編譯了這些庫。有人可以告訴我編譯後得到的文件是怎麼樣的?我只在/ lib文件夾中得到一堆dylib文件cv.so文件。在你發佈的問題中的jni文件arent there.maybe我不看在正確的地方,或他們不是由海灣合作委員會在所有 – m0rth1um 2012-02-08 15:23:47

回答

1

這是由於你的OpenCV和javaCV庫的兼容性問題。 嘗試下載兼容的openCV庫(包含bin文件夾)。

0

VideoInputFrameGrabber僅在Windows下工作。

正如JavaCV的README.txt文件規定:

  • videoInputLib包裝以及相應的VideoInputFrameGrabber使用Windows 7下的DirectShow,有效捕捉到其中的OpenCV和FFmpeg的可能無法使用Windows視頻捕捉(問題#58)
0

我使用javacpp和videoinput來操作攝像頭。當我調用'videoInput.listDevices()'時,出現'java.lang.UnsatisfiedLinkError:java.library.path'中沒有jnivideoInputLib的錯誤。

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

必須調用「Loader.load方法」先調用其他方法之前,我不知道爲什麼: 我加入的代碼一樣解決問題。