Runnable JavaCV Project - PullRequest
       10

Runnable JavaCV Project

0 голосов
/ 03 февраля 2012

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

Теперь у меня возникают проблемы, когда я пытаюсь выполнить ту же программу на своем ноутбуке.OpenCV там не установлен, но двоичные файлы OpenCV включены в jar-файлы JavaCV, которые включены в мой jar-файл.

Так что мой вопрос: есть ли шанс создать исполняемый файл JAR, который может быть выполнен в любой системе Ubuntu или Windows, где OpenCV не установлен.

Andreas

1 Ответ

2 голосов
/ 10 февраля 2012

Да, но с учетом ограничений Java и C ++, а также проблем с лицензированием от Microsoft, проще всего было бы статически связать все, что вам нужно, в одну массивную библиотеку JNI, по одной на платформу. Это можно сделать, изменив каталоги в верхней части файла opencv_core.java и указав на них статические библиотеки, а также с помощью опции -o myMassiveJNIlib JavaCPP (см. Файл build.xml JavaCV). В ваших приложениях просто вызовите System.load ('path / to / myMassiveJNIlib') перед использованием JavaCV. Мы также можем вызвать Loader.extractResource() для соответствующего библиотечного файла, включенного в файл JAR (возможно, с именами файлов, основанными на Loader.getPlatformName()), чтобы извлечь его во временный файл, прежде чем вызывать System.load() для него. Это то, что JavaCPP делает автоматически для каждого класса, когда нам не нужно объединять все в один большой массивный файл.

EDIT: последние версии JavaCPP и JavaCV могут извлекать и загружать из ресурсов собственные библиотеки, как показано в примере FaceApplet . Больше не нужно связываться со статическими библиотеками.

...