AndroidStudio不需要安装OpenCV Manager,就可以运行openCV,实现人脸检测

AndroidStudio不需要安装OpenCV Manager,就可以运行openCV,实现人脸检测



我用的是官方demo,版本是OpenCV-3.0.0-android-sdk

那首先就要下载OpenCV的SDK啦

SDK下载       http://opencv.org/downloads.html


看下目录



一、用AndroidStudio导入工程,直接从这文件夹里导入face-detection项目



因为是eclipse工程,导入时会有些错误,但是很容易就解决的

二、修改项目jni文件夹下的android.mk文件


其实主要是修改这个4个地方

OpenCV_INSTALL_MODULES:=on
OPENCV_CAMERA_MODULES:=on
OPENCV_LIB_TYPE:=SHARED

include 你的OpenCV.mk位置

三、打开FdActivity.java文件,在oncreate()上面添加一个静态初始化块代码,它是用来加载OpenCV_java库的,由于FaceDetection中还用了另一个库detection_based_tracker,所以要在else子句中加载进来:

static {
    Log.i(TAG, "OpenCV library load!");
    if (!OpenCVLoader.initDebug()) {
        Log.i(TAG, "OpenCV load not successfully");

    } else {
        System.loadLibrary("detection_based_tracker");// load other libraries
    }
}

删除FdActivity.java的OnResume()方法的OpenCVLoader.initAsync()方法,不让它去访问OpenCV Manager。
super.onResume();
if (!OpenCVLoader.initDebug()) {
    Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
    //OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
} else {
    Log.d(TAG, "OpenCV library found inside package. Using it!");
    mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}

四、编译,编译成功,但是你会发现屏幕一片黑,因为还要把armeabi-v7a复制到opencvLibrary的mian目录的jniLibs目录下


armeabi-v7a在你下载的SDK的native\libs里


五、再编译你会发现这个错误

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load detection_based_tracker from loader dalvik.system.PathClassLoader

这里是说缺少detection_based_tracker这个库文件


这里就需要你自己去配置NDK环境了(百度或谷歌),配置好NDK环境之后,用cmd进入工程文件的src\main\jni目录,执行ndk-build命令,就会生成detection_based_tracker库文件


编译好后,这个文件会出现在你的项目里,把它复制到opencvLibrary的jniLibs\armeabi-v7a目录下,然后再run就ok了

作者测试了OpenCV3.0和OpenCV2.4版本,发现3.0版本比较流畅,2.4版本会比较卡顿



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值