这是本人第一篇博客,写博客并不是说本人的技术能力有多强,或者说炫耀自己取得的进展。在当今这个数据信息大爆炸的年代,每个人肯定会接受很多新鲜事物,但不是所有东西你都能记得一清二楚,写博客一方面是为了巩固加深自己的学习;另一方面,一直在各博客上学习他们的思路和方法,自己也想加入这个集体里面,为别人提供一些帮助。
言归正传,最近接到了一个人脸识别移动平台搭建的任务,大体任务是:图像处理过程全部用C++处理,之后将处理的结果用JNI的方式传给手机端显示出处理过后结果。
在网上大约按自己的思路搜了下解决方案,Opencv有个Android版本,可以导进Eclipse 和AS里面,用于手机端的图像处理识别,完美符合项目要求。
opencv-androd 的下载地址:https://opencv.org/releases.html 下载完之后解压到一个不含中文的目录下
在安装上面,出现了大约两种思路:
1)手动配置JNI,配置mk文件
2)用最新的AS里面自带的C++选项进行添加
(PS:这里出现了两种思路,仁者见仁智者见智,如果十分清楚JNI,可以下载最新版本的AS里面自带c++选项,省掉了很多繁琐步骤;如果对JNI不是很熟悉,可以先手动配置一次JNI,加深自己对知识的理解)
本文主要以第二种方法为主,第一种方法网上有一大把,可以参考他们的博客 这是我的下载的版本号:Android studio 版本为3.1.2 opencv-Android为3.4.1
step1:
step2:
之后一路next 直到step3:
之后创建成功后,可以看下app下面有一个cpp 和java 文件夹,直接运行就可以看到,“hello world from C++”证明自己一开始创建的环境没错,如果中间有报错,提示缺少XXX插件之类的,按照log里面的提示下载安装即可。
之后 点击 File》Setting》Android SDK》SDK tools 如图 有缺少的点击下载即可。
之后我们添加Opencv341到我们的Android Studio 里面,点击File》New》import modul 如图选择下载的opencv-Android的java文件夹
之后不要做任何修改一直next,成功后会看到添加了另一个文件夹openCVLibrary341,证明添加成功
之后点击File》Project Structure,如图顺序点击
添加 点击finish。
这时就可以在MainActivity里面导入opencv
这时,将 (Modul:opencvLibrary341) compileSdkVersion minSdkVersion targetSdkVersion全部改成和(Modul:app)下的保持一致后,点击编辑栏右上方的
切换到project选项
在app/src/main文件夹下创建一个目录为JniLibs 将下载的opencv-Android-sdk 下的OpenCV-android-sdk\sdk\native\libs 下的所有内容,拷贝到该目录里面。
在AndroidManifest.xml文件添加如下代码 如图
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
点击app下的Cmake文件,修改cmake文件内容如下
set(pathOPENCV D:/software/OpenCV-android-sdk) set(pathPROJECT D:/codezoom/UseOpenCvwithCmake) 一定要以自己安装文件为主
点击 Build》Rebuild 查看配置的有什么问题,(出错后我认为一定要检查两点 1.复制win10下的目录要把 \ 改成 / 否则找不到文件 2.仔细查看目录是否正确)
这时我们点击cpp下的文件,发现我们可以添加opencv的头文件了
大功告成!!!!!!!!!!!!!
参考博客:http://webnautes.tistory.com/1054 (可能需要FQ)