文章目录

  • 0. 前言及准备
  • 1. 新建项目
  • 2. 项目导入opencv sdk
  • 3. 确保targetSdkVersion一致
  • 4. 导入JNI
  • 5. 运行测试


0. 前言及准备

注意根据对应的android studio下载对应版本!!! 我这里的android studio版本为3.5.3, 那么我就下载3.4.7的opencv

大于3.5的android studio就下载3.4.7版本的opencv, 小于3.5的如果是3.4.9就下载3.4.9 , 否则无法识别OpenCV Module

android中使用opencv 安卓使用opencv_android中使用opencv

1. 新建项目

第一步我们来新建一个项目, 我们来新建一个Empty project

android中使用opencv 安卓使用opencv_运行测试_02

这里我就叫他TestOpenCV

android中使用opencv 安卓使用opencv_android_03

2. 项目导入opencv sdk

准备好刚刚下载好的android SDK, 解压到一个位置

android中使用opencv 安卓使用opencv_OpenCV_04

之后选择 下载好的sdk目录下的sdk->java目录, 如果下载的sdk版本正确, 会自动识别module name

如果识别错误, module name会识别为java, 回到前言部分, 确认一下自己的sdk版本是否正确

android中使用opencv 安卓使用opencv_android_05


New->Project Stucture, 添加 OpenCV模块依赖

android中使用opencv 安卓使用opencv_OpenCV_06

这里会报错, 原因是OpenCV库中使用了那minSdkVersion, 这里点击蓝色的Remove xxx, 之后再点Do Refactor, 自动修复即可, 或者自己去OpenCV库中的Mainifest文件中手动删除
之后可能会出现同样的警告, 使用相同方法处理即可

android中使用opencv 安卓使用opencv_android_07

android中使用opencv 安卓使用opencv_android_08

3. 确保targetSdkVersion一致

OpenCV库与我们的项目app的gradle的目标版本可能是不同的, 因此我们需要保持他们的一致

android中使用opencv 安卓使用opencv_android_09


app的版本是29

android中使用opencv 安卓使用opencv_运行测试_10


确保你的 openCV库也是29

android中使用opencv 安卓使用opencv_android中使用opencv_11

4. 导入JNI

app->New->Folder->JNI Folder 来新建一个jni目录

android中使用opencv 安卓使用opencv_android中使用opencv_12

勾选Change Folder Location, 这里我选择jniLibs目录来存放jni库文件

android中使用opencv 安卓使用opencv_OpenCV_13


接下来取到你sdk的目录下, 复制sdk->native->libs文件下下的所有内容

android中使用opencv 安卓使用opencv_OpenCV_14

右键app->Paste

android中使用opencv 安卓使用opencv_OpenCV_15


选择粘贴到对应jniLibs目录

android中使用opencv 安卓使用opencv_android中使用opencv_16

若在项目中看到此文件夹说明配置成功

android中使用opencv 安卓使用opencv_android中使用opencv_17

5. 运行测试

我们使用OpenCV.initDebug()方法进行测试, 代码如下

package xyz.theoye.testopencv;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

import org.opencv.android.OpenCVLoader;

public class MainActivity extends AppCompatActivity {

    private  static  String TAG = "MainActivity";
    static{
        if(OpenCVLoader.initDebug()){
            Log.d(TAG, "OpenCV is Configured Successfully");
        }else{
            Log.d(TAG, "OpenCV is Configured inCorrectly");
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

之后运行, 在LogCat中输入’ Main Activity’ , 若看到对应字符串, 则配置成功

android中使用opencv 安卓使用opencv_运行测试_18