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

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

Я Mac Os X 1.5.

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

теперь я открываю затмение, а я создаю новый проект, как описано здесь : 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" Ява.ленг.UnsatisfiedLinkError: Не для загрузки библиотеки 'cxcore': функции выглядит(libcxcore.dylib, 9): изображение не найдено

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

3 ответов


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

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

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


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

- 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 / 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

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

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