今年8月份, OpenCV 2.3.1发布了. 虽然从2.2开始, OpenCV就号称支持Android平台, 但真正能让OpenCV在Android上运行起来还是在2.3.1版本上. 在这个版本上, 我们可以使用Android的Camera,也可以使用OpenCV自带的VideoCapture. 大部分重要的API已经封装成了JAVA接口,可以在Android中直接调用. 比如imread, VideoCapture, Mat等. 废话少说, 来看看怎么在Android中使用OpenCV.
1 下载JDK, Android SDK, ADT, Eclipse配置Android开发环境, 在Developer网站上有详细的步骤.
2 下载OpenCV-2.3.1-android-bin.tar.bz2, 解压即可.Android下比较简单, 不需要自己编译.
3 打开Eclipse, 在Package Explore里面右键, 选择Import. 选择刚才解压的OpenCV-2.3.1-android-bin文件夹,里面有两个文件呀OpenCV-2.3.1和samples. 前一个目录里面包含了所有已经实现的Java接口, 是一个Library工程.后一个目录则是一些例子, 简单明了, 很有用.
4 随便选择一个例子,比如face-detection, 右键选择Build project. 把编译生成的apk装到手机上就可以运行了.
5 如果在自己的Android工程里面使用OpenCV, 需要做的有:(1) 把OpenCV-2.3.1添加到Project中去, 这个Project默认是一个Library, 在别的工程中可以使用它 (2)在自己的工程中,右键选择"Properties", 在弹出的窗口中选择"Android", 然后"Add".这时会看到OpenCV, 添加进来即可使用了.
虽然可以使用Android Camera和OpenCV Camera, 个人觉得还是Android Camera比较好, 使用起来比较灵活, 用户可以方便的设置各种属性, 比如视频格式, 分辨率, 帧率, 白平衡, 曝光等等. Android的Camera类允许用户设置PreviewCallback, 可以在这里面调OpenCV的api对每帧图像进行处理, 把结果实时显示到屏幕上.
从2.2到2.3.1对Android版的OpenCV来说是个巨大的飞跃, 有理由相信在未来的版本中OpenCV会对Android提供更好的支持. 感谢Android, 感谢OpenCV, 感谢开源.