Javacv UnsatisfiedLinkError в Windows 7
В моем проекте я хочу захватить изображение с моей веб-камеры.
Я настроил шаг за шагом, следуя инструкциям из этого блога "OpenCV-JavaCV: конфигурация проекта eclipse windows 7".
После завершения настройки я протестировал образцы кодов и приложение нашло мою веб-камеру
SETUP: настройка устройства 0
НАСТРОЙКА: Веб-камера Namuga 1.3M
НАСТРОЙКА: Не удалось найти предварительный просмотр с помощью SmartTee
SETUP: захват перехвата
SETUP: устройство настроено и готово к съемке.
и тогда я получил ошибку, которая является ошибкой.dll.
Я использую Windows 7 x64.
Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\javacpp153028723186\jniopencv_core.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
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:418)
at com.googlecode.javacpp.Loader.load(Loader.java:368)
at com.googlecode.javacpp.Loader.load(Loader.java:315)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.googlecode.javacpp.Loader.load(Loader.java:334)
at com.googlecode.javacpp.Loader.load(Loader.java:315)
at com.googlecode.javacv.cpp.opencv_core$CvArr.<clinit>(opencv_core.java:158)
at com.googlecode.javacv.VideoInputFrameGrabber.grab(VideoInputFrameGrabber.java:158)
at GrabberShow.run(GrabberShow.java:24)
at java.lang.Thread.run(Unknown Source)
Как я могу решить эту проблему?
4 ответа
Проверьте, совпадают ли ваша версия Opencv и версии JavaCv. Вы можете проверить, что в файле readme на javacv-bin конкретно сказано о требуемой версии opencv.
Неудовлетворенная ссылка означает, что не все библиотеки нативного кода, требуемые jniopencv_core.dll, могут быть найдены.
Вы развернули их все или просто jniopencv_core.dll?
Я столкнулся с этой проблемой в Windows XP и Windows 7, и вот как я исправил ее на обеих платформах, используя Netbeans 7.2:
Установите все необходимое программное обеспечение:
- FFmpeg (32-битный общий): Zeranoe FFmpeg предлагает сборки win32. Загрузите и извлеките http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-20121020-git-04bf2e7-win32-shared.7z. Разместите его содержание на
C:\ffmpeg
,
Примечание: убедитесь, что C:\ffmpeg\bin
правильный путь
- OpenCV 2.4.2 (32-разрядная версия): загрузите OpenCV-2.4.2.exe и распакуйте его. Разместите его содержание на
C:\opencv
,
Примечание: убедитесь, что C:\opencv\build\x86\vc10\bin
правильный путь.
JavaCV 0.2: скачайте javacv-0.2-bin.zip и распакуйте его. Переместить извлеченную папку в
C:\javacv-bin
,Распространяемый пакет Microsoft Visual C++ (32-разрядный): загрузите и установите vcredist_x86.exe.
Настройте среду:
- Отредактируйте переменную среды PATH и добавьте следующие пути в конце:
C:\ffmpeg\bin;C:\opencv\build\x86\vc10\bin
Теперь вы готовы создать новый проект Netbeans и протестировать свое приложение. Но прежде чем скомпилировать его, не забудьте щелкнуть правой кнопкой мыши папку " Библиотеки " в окне pProjects * и нажать " Добавить Jar/FOLDER", чтобы выбрать все файлы .jar, расположенные в C:\javacv-bin
,
Убедитесь, что у вас есть VM Arg -Djava.library.path=<path-to-native>
это указывает на каталог с вашими DLL.