Использование OpenCV в Java с JavaCV - PullRequest
10 голосов
/ 14 сентября 2010

Я впадаю в отчаяние !!Я пытаюсь использовать OpenCV в Java , через JavaCV (JNA для упаковки OpenCV для Java).

Я на Mac Os X 1.5.

Я установил OpenCV, и я могу скомпилировать и запустить включенные примеры.Так что это работает.

Теперь я открываю Eclipse и создаю новый проект, как описано здесь: http://code.google.com/p/javacv/

В этом новом проекте только один маленький классс вызовом функции opencv (я использовал пример кода):

import static name.audet.samuel.javacv.jna.cxcore.*;
import static name.audet.samuel.javacv.jna.cv.*;
import static name.audet.samuel.javacv.jna.highgui.*;
import static name.audet.samuel.javacv.jna.cvaux.*;

public class Test {
    public static void main(String[] args) {
        IplImage image = cvLoadImage("test.png", 1);
        if (image == null) {
            System.err.println("Could not load image file.");
        } else {
            cvSmooth(image, image, CV_GAUSSIAN, 3, 0, 0, 0);
            // ...
        }
    }
}

Когда я запускаю его, у меня появляется следующая ошибка:

Исключение в потоке "main"java.lang.UnsatisfiedLinkError: Невозможно загрузить библиотеку 'cxcore': dlopen (libcxcore.dylib, 9): изображение не найдено

Пожалуйста, мне нужна помощь, я часами просматривал Google, я небольше не знаю, где искать.

Ответы [ 3 ]

4 голосов
/ 14 сентября 2010

Оказалось, что версия SVN не совместима с JavaCV.

Я скачал последнюю официальную версию (2.1), скомпилировал и установил, и она работает.

См. http://code.google.com/p/javacv/issues/detail?id=19

1 голос
/ 16 апреля 2011

Вам необходимо связать эти две библиотеки:

- javacpp.jar
- javacv.jar

В JavaCV / lib-opencv / win_x86_64 у вас должны быть файлы вашего типа:

 - msvcp100.dll
 - msvcr100.dll
 - opencv_core220.dll
 - opencv_calib3d220.dll
 - ...

Эти библиотеки DLL имеютбыть скомпилированным для вашей платформы (win 32 / win 64 / Linux / и т. д.

Вы должны определить путь к своим файлам DLL OpneCV:

-Djava.library.path=lib-opencv/win_x86_64/
- or the DLLs have to be somewhere in your system PATH of your operating system
0 голосов
/ 29 августа 2017

Я какое-то время рассматривал эту проблему, поскольку ОП предполагает, что все виды проблем начинают выползать из дерева. Я прошел тонну постов StackOverflow, чтобы получить относительно безболезненный опыт настройки проекта OpenCV на Java. Я прошел через JavaCV и обнаружил, что он не отвечает моим потребностям. Однако я смог напрямую реализовать функциональность, на которую ссылаются в постах OpenCV (посты C ++), но на языке Java, когда использовал определенные версии javacpp. У меня также было множество проблем с компиляцией, поскольку javacpp зависит от скомпилированных библиотек C ++, которые должны быть встроены в среду, в которой находится пользователь (то, что люди, живущие на Java, любят не иметь дела). В любом случае я смог построить и окружающую среду с Maven. Я использую Eclipse, но это должно хорошо работать с другими средами программирования. Я создал пример проекта, чтобы проиллюстрировать, как начать создавать проект начальной загрузки и начать работать. Проект сравнивает 2 изображения, учитывая их URL. Это тест на равенство, идентичны ли изображения или нет. Надеюсь, это поможет людям настроить и начать работать в этой среде и избежать множества ловушек, с которыми я столкнулся, пытаясь работать с OpenCV в Java (в то время я находился в том же месте, что и OP мысленно :)). 1001 *

Пример: https://github.com/darkhipo/ImgzCmp

...