上篇说到从 https://opencv.org/releases.html 上可以下载到最新版的 OpenCV-android-sdk 但是由于从3.0版本开始,用于图像特征匹配的一些算法(比如SIFT,SURF,BRIEF,FREAK等)被转移到了opencv_contrib项目的xfeatures2d模块中。需要使用这些算法的同学请从 github上 下载 opencv_contrib和opencv 编译成Android需要的sdk 过程如下:
1 准备所需的工具 和 library
opencv 3.3.1
git clone https://github.com/opencv/opencv.git
opencv_contrib
git clone https://github.com/opencv/opencv.git
CMake
brew install cmake ninja ant
ndk
Android-sdk
2 指定一个存放sdk的文件夹
本人在 opencv目录下创建了build文件夹存放编译后的sdk
cd ~/opencv/ & mkdir build
3 执行opencv提供的编译脚本
脚本位置:
cd ~/opencv/platforms/android
执行脚本
./build_sdk.py --ndk_path ~/android-ndk-r10e --sdk_path ~/Library/Android/sdk --extra_modules_path ~/opencv_contrib/modules ~/opencv/build ~/opencv
其实这样虽然把opencv_contrib编译进来了 但是xfeatures2d模块在jni中是不能直接调用的:
需要修改 ~/opencv/platforms/android/android.toolchain.cmake 设置