最近做的项目有涉及到需要在Android平台上使用OpenCV,上网查了很多资料,也走了不少弯路,特此做些记录,供各位读者参考。
一、OpenCV到底是什么?
OpenCV是一个开源的图像处理引擎,使用C++编写,对外提供了C,C++,Java,Python的调用接口,最初是由Intel 公司开发,现在由Willow Garage公司维护。
二、我们能利用OpenCV做什么?
往小了说,比如你需要把普通的彩色图像转换成灰度图像,把视频数据格式YUV转换成RGB格式,对图像做缩放、裁剪等等事情,OpenCV都提供了便捷的的使用方式。
往大了说,你需要把转换图像颜色风格,把图像中的人脸替换为其他人的人脸,对图像进行边缘增强等等,OpenCV也提供了比较友好的接口供你使用(当然,不是说什么需求都只需要调用一个接口就能解决,世界上没有这么便宜的事)。
总之,能利用OpenCV做什么最后还是取决于读者的功力。
三、如何在Android上进行OpenCV开发?
Android的开发者可以通过两种方式使用OpenCV:
—— 使用OpenCV提供的Java api
—— 使用jni方式
首先请下载OpenCV的的android sdk,此处为链接,一般来说请下载最新的(截止到笔者写这篇文章为止,OpenCV sdk最新版本为3.4)
下载之后解压缩,通常会发现有三个子目录,如图
apk目录下,是名字为OpenCV_xxx_Manager_xxx.apk的安装包,其存在的作用是提供一种跨进程使用OpenCV api的方式,这种方式的好处是不需要在你的项目中包含OpenC