OpenCV 不同平台集成
OpenCV 集成
1. Android 平台
Android 平台集成主要提供两种方式,Android SDK 下载地址:https://opencv.org/releases/;
1.1 Java 层直接调用
直接使用官方提供的 Android SDK 集成 Java 开发,
配置流程 OpenCV – 3.4.6
① 新建或打开 Android 工程项目;
② 工程项目 Import module -> select sdk java 目录 -> 根据修复 openCVLibrary346 文件依赖错误-> 修改opencv module build.gradle 与 工程项目中sdk 版本号保持一致,minSdkVersion 21 -> 工程项目添加依赖 openCVLibrary346「注意:不同版本差异可能需要 application -> apply plugin: 'com.android.library'
,删除 applicationId
」
③ sdk/native/libs 目录下arm64-v8a(64位) 与 armeabi-v7a(32位) copy 至工程项目 libs 目录;
④ 项目 module 工程 build.gradle
文件 android{...} 中,添加 libs 依赖,「也可在main 目录新建 jniLibs
(大小写敏感) 目录,*.so
动态文件copy,不用添加 sourceSets
代码,两种方案二选一即可」
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
⑤ 使用前初始化 initLoadOpenCV()
private void initLoadOpenCV(){
boolean success = OpenCVLoader.initDebug();
if(true == success){
Log.i(TAG, "OpenCV library loaded ...");
}else{
Toast.makeText(this.getApplicationContext(), "Waring: Could not load opencv libraries!", Toast.LENGTH_LONG).show();
}
}
Github Sample 代码:https://github.com/JerrryLiu/AndroidSample/tree/master/OpenCvSample/opencv4java
1.2 Native 层调用
直接依赖 libopencv_java3.so 与 头文件自己封装 JNI 方法,代码量少,可以只封装自己使用到的接口;
① AndroidStudio 新建 NDK Include C++工程
② .\opencv-3.4.6-android-sdk\OpenCV-android-sdk\sdk\native\libs\*
copy 至工程main 文件目录 jniLibs「大小写敏感」
③ .\opencv-3.4.6-android-sdk\OpenCV-android-sdk\sdk\native\jni\include\opencv2
copy 至项目 module cpp 文件下:
CmakeLists.txt
文件代码:
Github Sample:https://github.com/JerrryLiu/AndroidSample/tree/master/OpenCvSample/app
参考文章: