Использование 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), скомпилировал ее и установил, и она работает.
нужно связать эти две библиотеки:
- 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 мысленно в то время :) ).