AR技术之--基于opencv的人脸识别(二)
2016-06-27 20:14
459 查看
下载的OpenCV-android-sdk目录结构如下apk目录:manager的apk安装包samples目录:示例代码sdk目录:是java层代码和jni层代码OpenCV最简单的使用方式是使用manager,也就是使用apk目录下的安装包,安装对应的apk,将java层代码导入,使用OpenCVLoader.initAsync()加载库,之后你就可以直接用java代码调用Opencv相关的功能了。但是这种方式除了安装我们自己的apk还需要安装上面提到的manager的apk,用户体验十分不好,不推荐使用,本文的将完全脱离这个manager的apk。首先,新建项目,将OpenCV中sdk目录下的native目录拷到项目根目录;然后新建一个module为opencv-lib,以下都是基于opencv-lib的配置1、在gradle.properties中添加配置:android.useDeprecatedNdk=true2、在local.properties中添加配置:
ndk.dir=/Users/lisc/Library/Android/sdk/ndk-bundle sdk.dir=/Users/lisc/Library/Android/sdk注:需要将sdk和ndk的目录修改为自己本机配置的位置3、在opevcv-lib的main/src中新建jin目录,并增加Application.mk文件,添加配置:
APP_STL := gnustl_static APP_CPPFLAGS := -frtti -fexceptions APP_ABI := armeabi armeabi-v7a APP_PLATFORM := android-84、在opevcv-lib的main/src中增加Android.mk文件,添加配置:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) OpenCV_INSTALL_MODULES := on OpenCV_CAMERA_MODULES := off OPENCV_LIB_TYPE :=STATIC ifeq ("$(wildcard $(OPENCV_MK_PATH))","") include /Users/lisc/Documents/examples/ar/native/jni/OpenCV.mk else include $(OPENCV_MK_PATH) endif LOCAL_MODULE := OpenCV LOCAL_SRC_FILES := LOCAL_LDLIBS += -lm -llog include $(BUILD_SHARED_LIBRARY)注:
include /Users/lisc/Documents/examples/ar/native/jni/OpenCV.mk
需要修改为自己的路径
在build.gradle文件里面的android{}中添加配置:
sourceSets.main.jni.srcDirs = []sourceSets.main.jniLibs.srcDirs = ['src/main/libs', 'src/main/jniLibs']task ndkBuild(type: Exec, description: 'Compile JNI source with NDK') {Properties properties = new Properties()properties.load(project.rootProject.file('local.properties').newDataInputStream())def ndkDir = properties.getProperty('ndk.dir')if (org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)) {commandLine "$ndkDir/ndk-build.cmd", '-C', file('src/main/jni').absolutePath} else {commandLine "$ndkDir/ndk-build", '-C', file('src/main/jni').absolutePath}}tasks.withType(JavaCompile) {compileTask -> compileTask.dependsOn ndkBuild}task ndkClean(type: Exec, description: 'Clean NDK Binaries') {Properties properties = new Properties()properties.load(project.rootProject.file('local.properties').newDataInputStream())def ndkDir = properties.getProperty('ndk.dir')if (org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)) {commandLine "$ndkDir/ndk-build.cmd", 'clean', '-C', file('src/main/jni').absolutePath} else {commandLine "$ndkDir/ndk-build", 'clean', '-C', file('src/main/jni'[/b]).absolutePath}}clean.dependsOn 'ndkClean'
最后:运行ndkBuild,查看日志,如果出现以下日志,并生成文件即成功
成功生成libOpenCV.so文件
相关文章推荐
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- Android Studio中配置OpenCV库开发环境的教程
- 基于C++实现kinect+opencv 获取深度及彩色数据
- visual studio 2012安装配置方法图文教程 附opencv配置教程
- OpenCV 2.4.3 C++ 平滑处理分析
- Python中使用OpenCV库来进行简单的气象学遥感影像计算
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- Python环境搭建之OpenCV的步骤方法
- Python+Opencv识别两张相似图片
- Python实现OpenCV的安装与使用示例
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程
- opencv-python学习一--人脸检测
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- 使用 Java 开发 OpenCV 应用
- OpenCV配置,从来没有这么简单!
- ubuntu下opencv和qt的安装配置
- visual studio 2012安装配置方法图文教程 附opencv配置教程