Подтвердить что ты не робот

Использование OpenCV в Java с JavaCV

Я получаю отчаяние!! Я пытаюсь использовать 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, я не знаю, где искать больше.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

- javacpp.jar
- javacv.jar

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

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

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

Вам нужно определить путь к вашим 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

Ответ 3

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

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