Проблема с использованием OpenCV2.3.1 с основной деятельностью Android

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

Я проверил два варианта.

  • Я попытался использовать OpenCV в примере NDK для Android NativeActivity, просто сделайте несколько необходимых изменений (конвертируйте образец в С++, измените 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 *) ' и т.д.

  • Я попытался импортировать необходимые библиотеки, чтобы сделать собственную активность в примере с учебником 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, чтобы получить кадры камеры?

Спасибо заранее.

Ответы

Ответ 1

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

Ответ 2

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

@Adi Shavit - спасибо

Ответ 3

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

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