编译OpenCV3.3源码生成Android SDK

  • 内容
  • 评论
  • 相关

编译OpenCV3.3源码生成Android SDK

最近因为工作需要,需要在Android平台上编译OpenCV与其扩展模块生成Android SDK,之前因为有编译过OpenCV相关的Android NDK的项目,以为在Android平台上编译OpenCV源码很容易,花了两天的时候才完成整个编译过程,主要原因归结有一下:

  1. Android Studio上从SDK Manager下载的NDK居然缺少文件,刚开始没有意识到,浪费了不少时间,所以一定要下载离线版本,手动安装比较靠谱。

  2. 编译生成Java源代码的时候CMake一直不能检测到JAVAHOME、ANTHOME等环境变量,只能手动添加才可以,这个感觉比较坑。

  3. 当然是个人学艺不精,第一次完整编译OpenCV生成Android SDK,跟编译NDK项目有很多的不同。个人建议最好在乌班图上编译,在Windows上编译生成Android SDK比较麻烦。因为本人就是在Windows上完成编译的,下面就说说整个过程。

准备阶段

  • 下载安装JDK,如果有了就不用,配置JAVA_HOME到环境变量

  • 下载安装ANT,如果有就不用下载,配置ANT_HOME到环境变量 http://ant.apache.org/bindownload.cgi

  • 下载并解压OpenCV3.3 https://opencv.org/opencv-3-3.html

  • 下载并解压OpenCV3.3匹配的扩展模块 https://github.com/opencv/opencv_contrib/archive/3.3.0.zip

  • 下载并安装CMake https://cmake.org/download/

  • 下载并安装MinGW,编译生成,并且把C:MinGWbin配置到环境变量中去。

  • 下载并安装Android Studio,最新版本的SDK与NDK,配置环境变量ANDROID_NDK为安装好的NDK路径 C:/Users/zhigang/AppData/Local/Android/Sdk/ndk-bundle

CMake配置生成阶段

打开安装好的CMake-GUI,选择源码路径与编译后的保存路径。手动添加如下的实体变量。

编译OpenCV3.3源码生成Android SDK

然后点击【Configure】,选择【MinGW Makefile】,然后再选择使用toolchain-file,选择到 D:opencv-3.3opencvsourcesplatformsandroidandroid.toolchain.cmake。然后点击【Finish】就会生成配置,生成之后uncheck选项WITH_CAROTENE然后点击【Generate】。如果一切都好,你就会看到你的Java相关选项的支持生成

编译OpenCV3.3源码生成Android SDK

如果你看到上面的java wrappers是NO,说明你没有正确生成配置,这样就不会生成OpenCV4Android 的Java SDK。只会生成一堆*.a与*.so文件而已。

运行完之后显示如下

编译OpenCV3.3源码生成Android SDK

生成SDK阶段

打开你的cmd命令行,然后修改本地目录如下:

编译OpenCV3.3源码生成Android SDK

然后输入mingw-make回车之后就会开始执行编译生成

编译OpenCV3.3源码生成Android SDK

最终生成完成之后,再次输入如下命令行执行install步骤:

编译OpenCV3.3源码生成Android SDK

完成之后到install目录即可看到

编译OpenCV3.3源码生成Android SDK

下面就可以导入到Android Studio中正常使用了。关于如何在Android Studio中配置与使用OpenCV4Android SDK参见这里: http://blog.csdn.net/jia20003/article/details/53126321

最后,我之所以选择这张图像做封面,是因为编译OpenCV生成OpenCV4Android Java SDK是一件让人崩溃的事情,特别是在Windows平台下,但是值得所有学习与使用OpenCV的开发者挑战。最近事情比较多,公众号更新少了点,希望大家继续支持,我会持续更新!

伏久者,飞必高;开先者,谢独早


关注【OpenCV学堂】

长按或者扫码下面二维码即可关注

编译OpenCV3.3源码生成Android SDK


始发于微信公众号:OpenCV学堂