源码编译Android openCV+openCV_contrib库

工作需要,Android项目里用到了openCV的contrib模块的算法,奈何官方没有提供预编译好的Android SDK,于是参考了网上的一些文章,自己编译,在此做个记录。
编译很简单,下面直接贴出过程:

  1. 下载OpenCV 3.4.3源码
  2. 下载OpenCV contrib 3.4.3源码
  3. 进入到opencv-3.4.3/build目录,没有的话自己建立一个

执行cmake 配置一下,注意这里是配置编译armeabi-v7a,配置arm64-v8a同理,其中NDK_ROOT就是你Android NDK的路径而已,在环境变量里指定一下就完事了。

cmake-android -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
      -DCMAKE_TOOLCHAIN_FILE="/home/xxx/Android/android-ndk-r15c/build/cmake/android.toolchain.cmake" \
      -DANDROID_NDK="${NDK_ROOT}" \
      -DANDROID_NATIVE_API_LEVEL=${API_LEVEL} \
      -DANDROID_ABI="armeabi-v7a with NEON" \
      -D WITH_CUDA=OFF \
      -D WITH_MATLAB=OFF \
      -D BUILD_ANDROID_EXAMPLES=OFF \
      -D BUILD_DOCS=OFF \
      -D BUILD_PERF_TESTS=OFF \
      -D BUILD_TESTS=OFF \
      -DOPENCV_EXTRA_MODULES_PATH="/home/kneron/luliang/openCV/opencv_contrib-3.4.3/modules/"  \
      -DCMAKE_INSTALL_PREFIX="android_opencv" \
      ..

配置完了执行

make -j8 // 是几核就改成对应的数字
make install // 安装

好了,到这里就编译完事了,很简单吧,主要是cmake配置这一步,其中我给Android SDK下的cmake取了一个别名就叫cmake-android,实际上是一个软链接而已,其他的配置也就是一些路径的配置而已,很简单。
make install后需要的头文件和库文件就安装到了android_opencv这个文件夹下。

编译arm64-v8a的cmake配置如下:

cmake-android -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
      -DCMAKE_TOOLCHAIN_FILE="/home/xxx/Android/android-ndk-r15c/build/cmake/android.toolchain.cmake" \
      -DANDROID_NDK="${NDK_ROOT}" \
      -DANDROID_NATIVE_API_LEVEL=${API_LEVEL} \
      -DANDROID_ABI="arm64-v8a" \
      -D WITH_CUDA=OFF \
      -D WITH_MATLAB=OFF \
      -D BUILD_ANDROID_EXAMPLES=OFF \
      -D BUILD_DOCS=OFF \
      -D BUILD_PERF_TESTS=OFF \
      -D BUILD_TESTS=OFF \
      -DOPENCV_EXTRA_MODULES_PATH="/home/xxx/luliang/openCV/opencv_contrib-3.4.3/modules/" \
      -DCMAKE_INSTALL_PREFIX="android_opencv" \
      ..

你可能感兴趣的:(源码编译Android openCV+openCV_contrib库)