Вопрос

Я отчаянно получаю !! Я пытаюсь использовать OpenCV в Джава, через 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" java.lang.unsatisfiedlinkerror: невозможно загрузить библиотеку 'cxcore': dlopen (libcxcore.dylib, 9): изображение не найдено

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

Это было полезно?

Решение

Оказалось, что версия 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 / и т. Д.

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

-Djava.library.path=lib-opencv/win_x86_64/
- or the DLLs have to be somewhere in your system PATH of your operating system

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top