Opencv for Android 3.2 + Android Studio 3.0 + ndk-build 实时人脸检测
2017-12-07 17:41
447 查看
一、环境搭建
1.Opencv SDK下载地址:https://opencv.org/releases.html;
2.搭建Opencv for Android环境参见:https://www.cnblogs.com/woaixingxing/p/7157761.html;
3.搭建Android Studio DNK环境参见:http://blog.csdn.net/tongseng/article/details/53005123。这一步是为了生成libdetection_based_tracker.so文件。samples里的人脸检测会用到这个so库,但是需要我们自己生成。
二、拷贝内容
1.OpenCV-android-sdk\samples\face-detection下的jni文件夹;
2.OpenCV-android-sdk\samples\face-detection\res下的raw文件夹;
3.OpenCV-android-sdk\samples\face-detection\res\layout下的文件;
4.OpenCV-android-sdk\samples\face-detection\src\org\opencv\samples\facedetect下的文件;
5.AndroidManifest.xml文件中你项目里没有的内容。特别是权限声明和保持横屏。
三、修改文件
1.Android.mk:
其中OpenCV.mk的路径要注意下,如果“E:/Resource”写成“E:Resource”会报错:C:/Users/Administrator/AppData/Local/Android/Sdk/ndk-bundle/build//../build/core/prebuilt-library.mk:68:
*** target pattern contains no `%'. Stop.
2.Application.mk中的APP_ABI指定CPU架构,可以填all生成所有支持的so库。如果CPU架构不对会报错:找不到so文件。
3.将DetectionBasedTracker_jni.cpp和DetectionBasedTracker_jni.h中所有org_opencv_samples_facedetect改成你的包名,注意将包名中的.换成_。不然会报错:nativeCreateObject方法找不到。
4.在app模块的build.gradle的android根目录下添加:
不然会报错:Your project contains C++ files but it is not using a supported native build system.不要在gradle.properties中添加android.useDeprecatedNdk=true。
全部改好后在Terminal中使用ndk-build生成so库。
四、注意事项
1.如果应用报“Camera is not available (in use or does not exist)”,你需要在设置里为你的应用打开相机权限。
2.这个人脸检测需要横屏使用,不要竖着手机对着人脸抓耳挠腮。
1.Opencv SDK下载地址:https://opencv.org/releases.html;
2.搭建Opencv for Android环境参见:https://www.cnblogs.com/woaixingxing/p/7157761.html;
3.搭建Android Studio DNK环境参见:http://blog.csdn.net/tongseng/article/details/53005123。这一步是为了生成libdetection_based_tracker.so文件。samples里的人脸检测会用到这个so库,但是需要我们自己生成。
二、拷贝内容
1.OpenCV-android-sdk\samples\face-detection下的jni文件夹;
2.OpenCV-android-sdk\samples\face-detection\res下的raw文件夹;
3.OpenCV-android-sdk\samples\face-detection\res\layout下的文件;
4.OpenCV-android-sdk\samples\face-detection\src\org\opencv\samples\facedetect下的文件;
5.AndroidManifest.xml文件中你项目里没有的内容。特别是权限声明和保持横屏。
三、修改文件
1.Android.mk:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) OPENCV_CAMERA_MODULES:=on OPENCV_INSTALL_MODULES:=on OPENCV_LIB_TYPE:=SHARED include E:/Resource/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk LOCAL_SRC_FILES := DetectionBasedTracker_jni.cpp LOCAL_C_INCLUDES += $(LOCAL_PATH) LOCAL_LDLIBS += -llog -ldl LOCAL_MODULE := detection_based_tracker include $(BUILD_SHARED_LIBRARY)
其中OpenCV.mk的路径要注意下,如果“E:/Resource”写成“E:Resource”会报错:C:/Users/Administrator/AppData/Local/Android/Sdk/ndk-bundle/build//../build/core/prebuilt-library.mk:68:
*** target pattern contains no `%'. Stop.
2.Application.mk中的APP_ABI指定CPU架构,可以填all生成所有支持的so库。如果CPU架构不对会报错:找不到so文件。
3.将DetectionBasedTracker_jni.cpp和DetectionBasedTracker_jni.h中所有org_opencv_samples_facedetect改成你的包名,注意将包名中的.换成_。不然会报错:nativeCreateObject方法找不到。
4.在app模块的build.gradle的android根目录下添加:
sourceSets { main { jni.srcDirs = [] } }
不然会报错:Your project contains C++ files but it is not using a supported native build system.不要在gradle.properties中添加android.useDeprecatedNdk=true。
全部改好后在Terminal中使用ndk-build生成so库。
四、注意事项
1.如果应用报“Camera is not available (in use or does not exist)”,你需要在设置里为你的应用打开相机权限。
2.这个人脸检测需要横屏使用,不要竖着手机对着人脸抓耳挠腮。
相关文章推荐
- VLC for Android 基于 Opencv 对 RTSP视频 实时人脸检测
- OpenCv4Android3.4之Android Studio 人脸检测集成(小白专用)
- OpenCV on Android 开发(2)实现实时人脸检测
- 实时检测图像中的主要边缘 opencv for Android
- 【Android】开启前后相机用OpenCV进行实时人脸检测
- 关于opencv3.0加载人脸检测分类器出错
- 使用OpenCV Android SDK从摄像头帧实时检测人脸
- android opencv人脸检测程序
- 在Android Studio中实现OpenCV人脸检测
- opencv3之视频实时检测人脸区域
- python版opencv摄像头人脸实时检测方法
- opencv从摄像头读取视频并实时进行人脸检测代码
- Android中使用OpenCV检测人脸(Android studio版)
- OpenCV4Android开发实录(2): 使用OpenCV3.4.1库实现人脸检测
- opencv+人脸检测(OpenCv3.0+VS2013)
- android opencv 人脸检测实现
- OpenCV例子四:摄像头实时人脸检测
- OpenCV与Compressive Tracking实现人脸的实时检测与跟踪
- python版opencv摄像头人脸实时检测
- Build opencv libraries for android arm, x86 ubuntu