Android studio 利用opencv341进行图像处理,下面是配置过程(本来用最新版本opencv430,配了好久似乎不太行,看一篇博客说新版本不稳定):
1.下载opencv android版:https://opencv.org/releases/,进行解压,
2.新建安卓工程,打开File--New--Import Module
打开sdk--java文件夹,module取名openCVLibrary3410
点击next,然后直接点Finish。
3.File--Project Structure,按照如下步骤操作,点击ok。
4.打开app和opencv的build.gradle,
compileSdkVersion
buildToolsVersion
minSdkVersion
targetSdkVersion
修改opencv的build.gradle中这四个参数,改为和app的一致,改后为以下:
同时,打开opencv431的manifest.xml文件,删除矩形框中内容(把最后符号>留下,不小心画进去了),否则关于minsdkversion报错。
5.复制opencv的native/libs文件夹,粘贴到Android工程的src/main文件夹中,将libs修改名称为 jniLibs.
在安卓工程中显示如下图。
6.为了避免在运行app时需要安装opencv manage rpackage,在activity中添加以下代码。
// OpenCV库加载并初始化成功后的回调函数
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
System.out.println("OpenCV loaded successfully");
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
//——————————————————————————————————————————————
@Override
public void onResume()
{
super.onResume();
if (!OpenCVLoader.initDebug()) {
Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback);
} else {
Log.d(TAG, "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
此外,在app的build.gradle中添加以下代码,位置在android{ }里面。
sourceSets{
main{
jniLibs.srcDirs=['src/main/jniLibs']
}
}
位置如下图。
7.测试app,点击按钮图像灰度化(下面黑色区域是别的功能,就在这个工程上测试了,与opencv无关)。