OpenCV-WeChatQRCode移植到Android平台

OpenCV-WeChatQRCode移植到Android平台_第1张图片  微信二维码识别引擎移植到Android平台

WechatQrcode Github 代码地址:

https://github.com/malxt/WechatQrcode


编译环境:

  • 系统:macOS Big Sur 11.2.3
  • Java 1.8.0_152
  • CMake 3.20.2
  • GNU Make 3.81
  • Apache Ant(TM) version 1.10.3
  • opencv4.5.2
  • opencv_contrib4.5.2
  • Android SDK
  • NDK
  • Android Studio 4.2
    Build #AI-202.7660.26.42.7322048, built on April 29, 2021
    Runtime version: 11.0.8+10-b944.6916264 x86_64
    VM: OpenJDK 64-Bit Server VM by N/A
  • 保持网络畅通,能科学上网最好,编译过程中,会下载一些额外的文件,如果下载失败,可能会产生错误和警告(对编译wechat_qrcode识别模块没啥影响)

开始编译:

1、下载文件opencv4.5.2、opencv_contrib4.5.2

2、打开CMake

OpenCV-WeChatQRCode移植到Android平台_第2张图片

  • Browse Source目录:下载的opencv源码目录
  • Browse Build目录:新建一个空文件夹用于存储编译后的文件

Add Entry操作:

  • Name:ANDROID_NDK                              Type:PATH          Value:NDK路径(最好填写sdk自带的ndk-bundle)
  • Name:ANDROID_SDK                              Type:PATH           Value:SDK路径
  • Name:ANDROID_ABI                                Type: STRING     Value: armeabi-v7a (每次都只能填一个,所以各个平台要分别编译)
  • Name:ANDROID_NATIVE_API_LEVEL    Type:STRING,   Value:21 (默认API为21)
  • Name:ANT_EXECUTABLE                        Type: PATH,      Value:ANT路径下的bin(用于Java 封装,便于AS 导入Module)
  • Name:ANDROID_STL                                Type:STRING      Value: c++_static(根据需求写入c++_static或c++_shared,本次操作填入c++_static)

ANDROID_NDK、ANDROID_SDKOpenCV-WeChatQRCode移植到Android平台_第3张图片

Apache Ant(TM) version 版本查看:

安装位置查看:

点击 ➕Add Entry

OpenCV-WeChatQRCode移植到Android平台_第4张图片

配置完参数后,点击Configure,首次会弹出窗口,标题为 Specify the generator for this project

选择 Unix Makefiles,单选Specify toolchain file for cross-compilingSpecify options for cross-compiling 然后点击Continue

会弹出Specify the Toolchain file窗口

选择对应NDK目录下的Toolchain路径,例如 ~/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake,

点击Done之后,就自动开始编译,如果各项参数没有错误,会提示Configuring done.

OpenCV-WeChatQRCode移植到Android平台_第5张图片

添加模块并调整参数

先搜索一下OPENCV_EXTRA_MODULES_PATH参数,如果已经存在就填入值,如果不存在就安装+Add Entry 添加这个参数和值

OPENCV_EXTRA_MODULES_PATH 下载opencv_contrib/modules路径

  • WITH_OPENCL=ON,支持移动端的并行架构
  • WITH_OPENCL_SVM=ON,开启共享虚拟内存

2个参数直接在搜索框中搜索WITH_OPENCL出来后,勾选

OpenCV-WeChatQRCode移植到Android平台_第6张图片

再执行Configure,每次都要等进度条执行完成,不要着急,需要下载一些支持文件,执行完之后,再点Generate,如果没有报错的话,如下图所示,

Configuring done

Generating done

表示参数设置成功。

OpenCV-WeChatQRCode移植到Android平台_第7张图片

下面打开终端,进入opencv_build目录,输入 make 回车,如果报错输入make install

OpenCV-WeChatQRCode移植到Android平台_第8张图片

OpenCV-WeChatQRCode移植到Android平台_第9张图片

OpenCV-WeChatQRCode移植到Android平台_第10张图片

到99%这个步骤就已经打包完成,module地址在~/opencv_build/opencv_android/opencv

Android Studio导入opencv_android 项目等待gradle执行完成后,就可以正常使用了,如果出现问题,再根据提示具体解决。

 

根据NDK版本不同,可能会出现各种c++异常问题,请自行根据错误信息具体解决!

效果参考Github WechatQrcode

完结!

OpenCV-WeChatQRCode移植到Android平台_第11张图片

Enjoy a cup of coffee,thanks!

 

你可能感兴趣的:(android开发,c++,android,opencv,cmake,ndk)