JavaCV дает java.lang.UnsatisfiedLinkError - PullRequest
3 голосов
/ 22 июля 2011

Хорошо, вы можете сказать: "используйте поиск в Google для этого, их миллионы".Тем не менее, я почти потратил весь день только для запуска следующего кода, но каждый раз, когда я пытался, я получал java.lang.UnsatisfiedLinkError: C: \ Users \ hp \ AppData \ Local \ Temp \ jniopencv_core2477828805078034839.dll: не могу найти зависимуюбиблиотеки ошибка, которая сводит меня с ума.

Я нашел javacv-bin папка, которая включает в себя javacpp.jar, javacv.jar, javacv-windows-x86.jar, javacv-windows-x86_64.jar .

В Netbeans я открыл свойства проекта и добавил их в библиотеки

Я нашел OpenCV2.3 папку, скопировал и вставил ее в каталог C: \.

Я добавил C: \ OpenCV2.3 \ build \ bin;C: \ OpenCV2.3 \ сборка \ x86 \ VC10 \ Bin;C: \ OpenCV2.3 \ build \ x64 \ vc10 \ bin; в ПУТИ.

И я считаю, что ничего не осталось.Однако каждый раз, когда я пытался, я получал ту же ошибкуЯ исчерпан, пожалуйста, кто-нибудь, помогите мне.

И последнее, чтобы сказать, у меня есть оба 32-битный и 64-битный JDK, поэтому я попробовал оба компилятора, но этобесполезно

import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;

public class Smoother {
    public static void main(String[] args) {
        smooth("filename0.png");
    }
    public static void smooth(String filename) {
        System.out.println("java.library.path="+System.getProperty("java.library.path"));
        IplImage image = cvLoadImage(filename);
        if (image != null) {
            cvSmooth(image, image, CV_GAUSSIAN, 3);
            cvSaveImage(filename, image);
            cvReleaseImage(image);
        }
    }
}

Ответы [ 4 ]

2 голосов
/ 30 июля 2011

У меня была такая же проблема, как и у вас.Предполагая, что расположение вашей папки openCV C:\OpenCV2.3, вот что нужно сделать.

  1. Создайте переменные path и classpath как в пользовательских, так и в системных переменных среды.

  2. Добавьте это ко всем четырем переменным (при условии, что у вас установлена ​​последняя версия openCV2.3): C:\OpenCV2.3\build\bin;C:\OpenCV2.3\build\x64\mingw\bin;C:\OpenCV2.3\build\x64\vc9\bin;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\x86\mingw\bin;C:\OpenCV2.3\build\x86\vc9\bin;C:\OpenCV2.3\build\x86\vc10\bin;

Надеюсь, это поможет!Аравинд

1 голос
/ 17 августа 2011

Два совета:

  • Нельзя смешивать библиотеки 64 и x86 в шаблонах!
  • перезапустить Eclipse
0 голосов
/ 18 января 2012

Если у кого-то возникла эта проблема, а обновление системного пути и пути к классу не помогло, переименуйте каталог OpenCv2.3.1 в «opencv».Это действительно решило мою проблему.

0 голосов
/ 22 июля 2011

Я никогда не работал с OpenCV, но каким-то образом я заставил мой код JNI работать. Вы сгенерировали .dll или он входит в пакет? И проверьте этот пост, это может Ohelp JNI ошибка при вызове подпрограммы C ... Еще одно предложение попробуйте поместить вашу dll в папку system32, а затем загрузить ее вручную с помощью System.load (путь / к / dll) метод ... счастливое кодирование

...