1. 创建工程
- 打开Android Studio, 点击Create New Project
- 选择Native C++, 点击Next
- 输入Name: OpenCV452, 点击Next
- C++ Standard选择: C++17, 点击Finish
- 等待一分钟左右, 视电脑速度和网络而定, 让as做准备工作
2. 导入opencv
- 打开opencv官网, 下载opencv452的安卓文件, 速度慢的话, 就用迅雷下载
image-20210628114228034.png
- 下载后是一个压缩文件, 解压后目录是这个样子, 我们要导入的是sdk下面的java文件夹
切换到as(Android Studio), File/New/Import Module
-
Source directory: 选择sdk/java (你的opencv下载到哪里, 就去哪里找), Module name 改为OpenCVLib452
image-20210628115018082.png
点击Next, 点击Finish
-
把opencv修改为library
image-20210628115238616.png
原来的代码
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "org.opencv"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
现在的代码
apply plugin: 'com.android.library'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
-
统一compileSdkVersion和buildToolsVersion
app版本号
opencvlib452版本号
点击as菜单左上角的File/Project Structure/Modules, 选择OpenCVLib452,
点击29.0.2右侧的下拉菜单, 选择30.0.3,
点击29右侧的下拉菜单, 选择30
点击OK
3. SDK Tools必装组件
阅读as官方用户指南, 必装组件有3个: NDK, CMake, LLDB(安装 Android Studio 时会随同安装 LLDB)
-
点击菜单栏Tools/SDK Manager
image-20210628121119676.png -
打开SDK Tools页面, 勾选右下角的Show Package Details
image-20210628121247983.png -
确保NDK至少下载安装了一个版本
image-20210628121440625.png -
确保CMake至少下载安装了一个版本
image-20210628121505878.png
4. 导入opencv的so文件
- 切换为project视图, 原来的是Android视图
-
在app文件夹右键, 创建JNI Folder
image-20210628121912629.png
-
勾选Change Folder Location,
New Folder Location内容为src/main/jniLibs/点击Finish
-
把opencv-4.5.2-android-sdk\OpenCV-android-sdk\sdk\native\libs下面的四个文件夹
复制到asProject\OpenCV452\app\src\main\jniLibs
image-20210628122402682.png
5. 修改cmake配置
打开asProject\OpenCV452\app\build.gradle文件
-
修改android/defaultConfig/externalNativeBuild/cmake字段
修改前externalNativeBuild { cmake { cppFlags "-std=c++17" } }
修改后
externalNativeBuild { cmake { cppFlags "-std=c++17 -frtti -fexceptions" abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' arguments '-DANDROID_STL=c++_shared' } }
-
同步一下文件
image-20210628123520114.png
6. 添加依赖
- 点击as菜单左上角的File/Project Structure/Dependencies
- 选择app, 点击Declared Dependencies下方的+号,
- 选择Module Dependency
- 勾选OpenCVLib452, 点击OK
- 点击OK
到此为止, opencv环境搭建完毕,
验证opencv是否可用
opencv-4.5.2-android-sdk\OpenCV-android-sdk\samples
这里面有很多opencv例子, 基本上复制黏贴就能用