Каков правильный путь к собственной библиотеке для использования OpenCV в eclipse-ubuntu

У меня проблема с настройкой собственного пути к библиотеке для opencv в eclipse-ubuntu. Я использую ubuntu 15.04.installed opencv 3.1.0 по этой ссылке http://milq.github.io/install-opencv-ubuntu-debian/ и добавьте новую библиотеку (OpenCV) в eclipse и установите путь к jar как

/home/user/opencv-3.1.0/build/bin/opencv-310.jar

и собственный путь к библиотеке как

/home/user/opencv-3.1.0/build/lib

Папка lib содержит файлы .so и .a. Но когда я пытаюсь использовать объект Mat, возникает ошибка: вот основной метод

System.out.println("Welcome to OpenCV hhhh " + Core.VERSION);
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat img=new Mat();

а вот скриншот моего кода и консоли введите описание изображения здесь выдает ошибку:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat()J
        at org.opencv.core.Mat.n_Mat(Native Method)
        at org.opencv.core.Mat.<init>(Mat.java:24)

если я использую такой коврик

Mat m1 =Imgcodecs.imread("/home/zed/Desktop/img.png");

то это дает мне ошибку diff:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
    at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method)
    at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:102)

я указываю правильный путь для родной библиотеки? Если нет, то какой правильный путь для Native Library использовать Opencv3.1.0 в eclipse-ubuntu


person Sony Khan    schedule 29.01.2016    source источник


Ответы (1)


вы должны добавить

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

Главный:

public static void main(String[] args) {

  System.out.println("Welcome to OpenCV hhhh " + Core.VERSION);
  System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
  Mat m1 =Imgcodecs.imread("/home/zed/Desktop/img.png");
  Mat m2=new Mat();
}

Надеюсь это поможет!

person Arijit    schedule 29.01.2016
comment
я добавил эту строку System.loadLibrary(Core.NATIVE_LIBRARY_NAME); но такая же ошибка!!! - person Sony Khan; 29.01.2016
comment
Вы добавили .jar? как внешний? - person Arijit; 29.01.2016
comment
да, я добавил opencv_java310.jar как внешний jar, а также добавил библиотеку OpenCV из пользовательской библиотеки в свойствах моего проекта - person Sony Khan; 29.01.2016
comment
На самом деле исключение в потоке main java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat()J в org.opencv.core.Mat.n_Mat(собственный метод) в org.opencv.core.Mat.‹init›( Mat.java:24) Эта ошибка соответствует добавлению System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Вы добавили его в первую очередь, прежде чем вызывать что-либо из opencv ?? Можете ли вы добавить скриншот? - person Arijit; 29.01.2016
comment
я добавил скриншот в свой вопрос - person Sony Khan; 01.02.2016
comment
Обе ошибки, о которых вы сказали, - это то же самое, что отсутствует собственная библиотека;/ - person Arijit; 01.02.2016
comment
Я не уверен, но, вероятно, это может быть ошибка со стороны opencv или вы где-то делаете что-то не так. - person Arijit; 01.02.2016
comment
какой тип проблемы может быть? - person Sony Khan; 01.02.2016
comment
Я думаю, что вы делаете что-то не так со своей сборкой или чем-то еще, я только что снова установил его с текущим репо на Ubuntu, и он отлично работает: / - person Arijit; 01.02.2016
comment
Но ошибка означает, что вы получаете банку правильно, но она не может найти собственные библиотеки: / или вы не загружаете собственные библиотеки. Можете ли вы опубликовать полный скриншот ошибки и кода. Я имею в виду все затмение - person Arijit; 01.02.2016
comment
добавил полный скриншот - person Sony Khan; 01.02.2016
comment
Давайте продолжим обсуждение в чате. - person Sony Khan; 01.02.2016
comment
я не знаю как общаться ззз - person Arijit; 01.02.2016
comment
Если вы запускаете приложение jar вне eclipse, оно работает? У меня такая же проблема, но только под Eclipse Ide. Я сделал ссылку на библиотеку внутри моей jre/lib, чтобы она работала sudo ln -s /usr/local/share/OpenCV/java/libopencv_java320.dylib /Library/Java/JavaVirtualMachines/jdk1.8.xxx.jdk/Contents/Home/jre/lib/libopencv_java320.dylib - person Paolo Biavati; 15.04.2017