OpenCV (Open Source Computer Vision Library) 是一个基于BSD许可(开源)发行的跨平台计算机视觉与机器学习库,可以运行在Linux、Windows、Android和Mac OS操作系统上。
1. 准备工作
- 安装Android Studio
- 下载OpenCV for Android Here
此处下载使用OpenCV 3.4.0
2. 导入Module
下载完成后解压其文件目录结构如下所示:
sample是OpenCV为我们提供的一些示范案例。
apk则是OpenCV提供的管理软件,以便手机使用。
其中关键部分为sdk中的Java目录,此为之后需要导入的module。
etc中包含人脸识别的一些数据集。
在创建好的安卓工程中导入module:
工程中会加入OpenCV
同时不要忘记添加依赖,在File-Project Structure中添加:
之后打开app 的 build.gradle 然后打开OpenCVLibrary340的build.gradle 有些地方需要一致
把app中的复制一下:
保证红框内部分与app的build.gradle一致。
3. libs
复制OpenCV-sdk-native-libs中的所有数据到工程对应的libs中:
9.PNG4. 配置app的build.gradle
api fileTree(dir: "$buildDir/native-libs",include: 'native-libs.jar')
compile
改为api
参阅这里
task nativeLibsToJar(type: Jar,description:'create a jar archive of the native libs'){
destinationDir file("$buildDir/native-libs")
baseName 'native-libs'
from fileTree(dir: 'libs',include: '**/*.so')
into 'lib/'
}
tasks.withType(JavaCompile){
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
在重新同步一下。
如上基本完成操作。
5. 测试
//灰度图像
private void RGB2Gray() {
Mat src = new Mat();
Mat dst = new Mat();
Bitmap temp = mBitmap.copy(mBitmap.getConfig(), true);
org.opencv.android.Utils.bitmapToMat(temp, src);
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGRA2GRAY);
org.opencv.android.Utils.matToBitmap(dst, temp);
mIvProcess.setImageBitmap(temp);
}
网友评论