Problème d'utilisation OpenCV2.3.1 avec Android Activité autochtone
-
27-10-2019 - |
Question
Je développe une application de vision par ordinateur pour Android. Ce travail consiste à obtenir des cadres de la caméra aussi vite que possible, donc je suis en train de construire une application android directement en C ++ en utilisant « android_native_app_glue » et « libnative_camera » pour obtenir des cadres de l'appareil photo. Il semble incompatible.
J'ai testé 2 options.
- J'ai essayé d'utiliser OpenCV sur l'échantillon android NDK « NativeActivity », juste faire quelques changements nécessaires (exemple de conversion à c ++, modifier android.mk y application.mk et y compris en utilisant les espaces de noms et Includes) Il donne l'erreur suivante:
SharedLibrary: libnative-activity.so
C: /Development/android-opencv-wsp/samples/native-activity/obj/local/armeabi-v7a/objs/native-activity/main.o: En fonction ~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 *) »
et ainsi de suite
- J'ai essayé d'importer les bibliothèques nécessaires pour faire une activité native sur l'échantillon tutoriel OpenCV2.3.1 3. J'ai simplement modifié le Android.mk et a ajouté:
LOCAL_STATIC_LIBRARIES: = android_native_app_glue
Immédiatement, quand j'ajoute cette ligne, je reçois l'erreur suivante:
SharedLibrary: libnative_sample.so
C: /Development/android-opencv-wsp/samples/tutorial-3-native/obj/local/armeabi-v7a/objs/native_sample/jni_part.o: En fonction ~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 *) »
et ainsi de suite ...
S'il vous plaît, quelqu'un a testé une activité purement native avec openCV2.3.1 et libnative_camera pour obtenir des cadres de l'appareil photo?
Merci à l'avance.
La solution
Changement LOCAL_STATIC_LIBRARIES: = android_native_app_glue à LOCAL_STATIC_LIBRARIES + = android_native_app_glue. Notez le signe plus. Cela ajoutera la nouvelle bibliothèque sans supprimer celui chargé précédemment. Source: Edanna dans les commentaires
Autres conseils
Je résolu le problème. C'était ma faute (comme d'habitude xD) le problème est que j'ecrivais dans mon Android.mk cette ligne: LOCAL_STATIC_LIBRARIES: = android_native_app_glue, au lieu de cette ligne: LOCAL_STATIC_LIBRARIES + = android_native_app_glue. Je avais besoin le symbole « plus », afin d'ajouter la nouvelle bibliothèque et ne pas supprimer le chargé précédemment. Merci quand même!!
@Adi Shavit - thx
Peut-être que vous devriez jeter un oeil à l'interface V4L? Vous pouvez consulter ce fil: http: //comments.gmane. org / gmane.comp.handhelds.android.ndk / 2824
Si je me souviens que vous pouvez lire directement à partir du fichier dans OpenCV dev d'une caméra. -James