OpenCV на rpi - ошибка сегментации в System.loadLibrary - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь установить OpenCV на Raspberry Pi и после многих попыток настроить cmake удалось создать opencv-400.jar и libopencv_java400.so В различных руководствах в Интернете не сказано, что делать дальше.

У меня есть jar в пути к классам, тестовый код прекрасно компилируется, и распечатка System.getProperty("java.library.path") включает каталог, содержащий файл .so. В другой директории, / usr / local / lib, процесс make поместил стек файлов .a. Инструкции cmake, в которых сказано, что библиотеки не должны делиться необходимыми частями, будут помещены в файл java .so. Я не уверен, что это имеет смысл? Я также должен был указать / usr / local в качестве префикса сборки - возможно, это должно быть что-то еще на пи?

Строка System.loadLibrary ("opencv_java400") создает неукрашенную ошибку сегментации.

... что, конечно, не должно. Если кто-то подключает камеру rpi к opencv и получает доступ к ней из java, возможно, вы могли бы поделиться параметрами cmake.

1 Ответ

0 голосов
/ 01 июля 2019

После возврата к opencv 3.3.0, чтобы мне не нужно было разбираться с cmake, я получил opencv, работающий на pi с c ++.Затем я обернул необходимые команды opencv в JNI ... и все еще получил ошибку сегментации.Затем я научился использовать gdb и очень быстро отследил ошибку до libopenmpt.Быстрый поиск показал, что это вызывает ошибку сегментации, когда не хватает памяти.

Решение в этом случае - запустить java -Xss128m ... для запуска моего кода.

Это, я полагаю,исправлено использование opencv 4 из встроенных компонентов Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...