OpenCV早已支持Android平台,而NDK已经摆脱了过去需要在Windows平台下使用Cygwin模拟Linux环境与工具的困境了,这时候Android使用NDK和OpenCV已经足够方便了。
使用环境介绍:4.0.3的ARMV7手机+集成21.1ADT的Eclipse+android-ndk-r8e+OpenCV-2.4.4-android-sdk。
环境重点:Eclipse工具自带NDK选项,可以直接选择NDK目录,设置Android.mk编译选项,选择的Android GCC。如上图。自己查了一下Android GCC编译工具可能比较特殊,专用于移动开发的Eclipes版本有该工具。工具来自:http://developer.android.com/sdk/index.html
首先,导入samples文件夹下的所有opencv工程,可能包含Opencv Libary,但是否使用这个库,取决于上图【include ../../sdk/native/jni/OpenCV.mk】
很明显,如果有这句话,表示Opencv Libary工程在该相对路径的位置,所以有必要导入该位置下的Opencv Libary。
将Opencv Libary工程,作为构建依赖项目添加到另外7个工程中。【或者在Android下的Libary下添加Opencv Libary工程,效果是一样的】
接下来,我发现Mixed Processing & face-detection 两个工程需要需要进行NDK的编译,所以这时候右键属性,设置编译工具,如下图。
如果设置了自动构建选项,这时候,编译就已经OK了。
不过这时候手机运行还是会有问题,因为没有安装opencv package manager。
在OpenCV-2.4.4-android-sdk\apk下有各种CPU环境下的包,安装自己手机的CPU对应包之后,程序就可以运行了。
抱歉,我是新手,有不准确的地方请大神轻拍指教。只是记录自己的经历,方便将来重新拾起。
以下是工程运行图片,Puzzle15,face-detection,color-blob,image mainpulation