之前需要将LSD算法通过ndk的方式在android上运行,所以搜索了一下资料,了解如何将OpenCV的Contrib中的源码编译进去。
环境要求
- Android Studio 1.3+
- OpenCV 3.0+
- OpenCV extra modules
- Ninja build system
- CMake
- Android NDK CMake toolchain
环境配置
Android Studio
注意下载解压完NDK后将其路径加入 PATH和ANDROID_NDK中,NDK的配置可以参考。
OpenCV
此处可将contrib中的modules复制到主工程的source中
Ninjia
将路径加到PATH中
CMake
下载安装CMake,下载解压Android NDK CMake toolchain,重启或者使用其他方式使得环境变量生效
编译过程
- 启动CMake-gui
- 设置OpenCV源码文件夹和目标文件夹
- 点击configure按钮并选择Ninja作为编译器
- 选择Android NDK CMake toolchain中的android.toolchain.cmake作为工具链文件
- 在CMake选项中第一项选择要生成的ABI平台
- 如果想生成动态链接库,需要enable BUILD_SHARED_LIBS
- 点击generate
- 在目标文件夹中cmd运行ninja
然后在原来配置好的OpenCV4Android中替换include和lib文件夹中的相应文件就可以了