在进行配置和编译前,已经安装好了Android的NDK和SDK,以及其它的辅助工具如git、cmake、ant、doxygen等。配置和编译的方法也是基本上按照官方(引用一)所描述的做法进行,由于可以进行从内核到框架的完整定制所以并没有选择使用OpenCV Manager/Service,而是编译生成Native共享库、附带生成JavaAPI和JNI的形式进行开发(引用二),根据需要进行Native或Framework层的测试程序开发。当然也可以使用cmake工程或NDK工程方式,在此不做表述。
从主站(引用三)下载3.0版本的opencv后,建立build目录用于编译,配置opencv编译的脚本如下:
#!/bin/sh
export ANDROID_NDK=/home/opencv/android-ndk-r10d
export ANDROID_NATIVE_API_LEVEL=19
export ANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.9
export ANDROID_SDK=/home/opencv/android-sdk-linux
export PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$PATH
cmake \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_opencv_apps=ON \
-DBUILD_ANDROID_EXAMPLES=ON \
-DBUILD_DOCS=ON \
-DBUILD_EXAMPLES=ON \
-DBUILD_PERF_TESTS=ON \
-DBUILD_TESTS=ON \
-DENABLE_VFPV3=ON \
-DENABLE_NEON=ON \
-DINSTALL_C_EXAMPLES=ON \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_ANDROID_EXAMPLES=ON \
-DINSTALL_TESTS=ON \
-DDOXYGEN_EXECUTABLE=/usr/bin/doxygen \
-DCMAKE_TOOLCHAIN_FILE=../platforms/android/android.toolchain.cmake ..
当然,环境变量也可以直接加入.bashrc。更多的配置信息可直接看opencv/CmakeLists.txt。
运行配置命令后进行编译,常用的编译命令有:
make -j8
make doxygen
make install
make package
make help
在编译过程中hello-android这个例子会有链接错误,原因是opencv/samples/android/CmakeLists.txt中没有加入opencv_imgproc库的引用,修改一下就可以通过编译了。
引用
http://code.opencv.org/projects/opencv/wiki/Building_OpenCV4Android_from_trunk
http://blog.csdn.net/yanzi1225627/article/details/27863615
https://github.com/Itseez/opencv.git