OpenCV Classpath в Netbeans - PullRequest
       14

OpenCV Classpath в Netbeans

1 голос
/ 05 февраля 2012

Я только начал работать с JavaCV под MacOSX.Я скомпилировал OpenCV с CMake из последнего источника и указал путь к библиотекам в аргументе -Djava.library.path=\path\to\libraries 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)

Ответы [ 3 ]

1 голос
/ 01 декабря 2012

Это связано с проблемой совместимости ваших библиотек openCV и javaCV. Попробуйте загрузить совместимые библиотеки openCV (содержащие папку bin).

0 голосов
/ 16 февраля 2017

Я использую javacpp и videoinput для управления камерами. Я получил ошибку «java.lang.UnsatisfiedLinkError: нет jnivideoInputLib в java.library.path», когда я вызываю «videoInput.listDevices ()». Я исправляю проблему, добавляя коды вроде:

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

Вы должны сначала вызвать 'Loader.load', прежде чем вызывать другие методы, я не знаю почему.

0 голосов
/ 29 января 2013

VideoInputFrameGrabber работает только под Windows.

Как указано в README.txt в JavaCV:

  • Новая оболочка videoInputLib и соответствующая VideoInputFrameGrabber для захвата с помощью DirectShow, полезно под Windows7, где OpenCV и FFmpeg могут не захватить с помощью Video for Windows (выпуск № 58)
...