Проблема с использованием OpenCV2.3.1 с Android Native Activity - PullRequest
14 голосов
/ 08 сентября 2011

Я занимаюсь разработкой приложения для компьютерного зрения для Android. Эта работа включает в себя получение кадров камеры как можно быстрее, поэтому я пытаюсь создать приложение для Android непосредственно в c ++, используя «android_native_app_glue» и «libnative_camera» для получения кадров камеры. Кажется несовместимым.

Я опробовал 2 варианта.

  1. Я пытался использовать OpenCV в образце android NDK «NativeActivity», просто внес несколько необходимых изменений (преобразование примера в c ++, изменение android.mk y application.mk, включая использование пространств имен и включений). Выдает следующую ошибку:

sharedLibrary: libnative-activity.so C: /Development/android-opencv-wsp/samples/native-activity/obj/local/armeabi-v7a/objs/native-activity/main.o: в функции ~Mat': C:\Development\android-opencv-wsp\samples\native-activity/../../OpenCV-2.3.1/share/OpenCV/../../include/opencv2/core/mat.hpp:297: undefined reference to cv :: fastFree (void *) ' и так далее

  1. Я попытался импортировать необходимые библиотеки, чтобы выполнить нативное действие на примере учебного руководства 3 по OpenCV2.3.1. Я просто изменил Android.mk и добавил:

LOCAL_STATIC_LIBRARIES: = android_native_app_glue

Сразу же, когда я добавляю эту строку, я получаю следующую ошибку: SharedLibrary: libnative_sample.so C: /Development/android-opencv-wsp/samples/tutorial-3-native/obj/local/armeabi-v7a/objs/native_sample/jni_part.o: в функции ~Mat': C:\Development\android-opencv-wsp\samples\tutorial-3-native/../../OpenCV-2.3.1/share/OpenCV/../../include/opencv2/core/mat.hpp:297: undefined reference to cv :: fastFree (void *) ' и так далее ...

Пожалуйста, кто-нибудь тестировал чисто нативное действие с openCV2.3.1 и libnative_camera для получения кадров камеры?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 10 мая 2013

Я решил проблему там. Это была моя ошибка (как обычно xD), проблема заключалась в том, что я писал в своем Android.mk следующую строку: LOCAL_STATIC_LIBRARIES: = android_native_app_glue, вместо этой строки: LOCAL_STATIC_LIBRARIES + = android_native_app_glue. Мне нужен был символ «плюс», чтобы добавить новую библиотеку и не удалять ранее загруженную. Спасибо, в любом случае!!

@ Ади Шавит - спасибо

0 голосов
/ 04 августа 2012

Изменить LOCAL_STATIC_LIBRARIES: = android_native_app_glue на LOCAL_STATIC_LIBRARIES + = android_native_app_glue. Обратите внимание на знак плюс. Это добавит новую библиотеку без удаления ранее загруженной. Источник: Эданна в комментариях

0 голосов
/ 01 ноября 2011

Может быть, вам стоит взглянуть на интерфейс V4L?Возможно, вы захотите проверить эту тему: http://comments.gmane.org/gmane.comp.handhelds.android.ndk/2824

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

...