OpenCV-WeChatQRCode移植到Android平台

@WeChatCV  微信二维码识别引擎移植到Android平台

WechatQrcode Github 代码地址:

GitHub - MALTF/WechatQrcode: WeChatQrCode transplant to android platform.


编译环境:

  • 系统: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

  • 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_SDK

 ANDROID_ABI Value:

  1. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多,不再使用了。
  2. armeabi-v7a: 第7代及以上的 ARM 处理器。2011至2015年发布的大多数安卓手机都在使用。
  3. arm64-v8a: 第8代、64位ARM处理器,目前绝大部分设备都支持。
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板。

Apache Ant(TM) version 版本查看:

ant -version

安装位置查看:

点击 ➕Add Entry

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

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

会弹出Specify the Toolchain file窗口

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

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

添加<opencv_contrib>模块并调整参数

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

OPENCV_EXTRA_MODULES_PATH 下载opencv_contrib/modules路径

每次修改配置参数之后,尽量Generate一下比较好。

 过程中会有下载一些文件,甚至报错,不用担心,等待进度条加载完成,如果是非wechat_qrcode模块报错的问题,对编译过程没有什么影响。

到这里就添加成功了。 

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

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

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

Configuring done

Generating done

表示参数设置成功。

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

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

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

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

效果参考Github WechatQrcode 

完结!

Enjoy a cup of coffee,thanks!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值