购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 OpenCV是什么

OpenCV的中文全称是源代码开放的计算机视觉库(Open Source Computer Vision Library),是基于C/C++编写的,是BSD开源许可的计算机视觉开发框架,其开源协议允许在学术研究与商业应用开发中免费使用它。OpenCN支持Windows、Linux、Mac OS、iOS与Android操作系统上的应用开发。在笔者动笔写这本书的时候,其最新版本3.3刚刚发布不久。

1.1.1 OpenCV的历史与发展

在OpenCV孕育发展的过程中,Intel公司做出了巨大的贡献,OpenCV最初是Intel公司的内部项目,随着时间的推移、OpenCV的功能算法得到不断的优化与增强,不过是短短十几年的时间,其已经席卷整个业界,得到众多著名IT公司的大力支持,其中包括大名鼎鼎的机器人公司Willow Garage与搜索引擎公司Google。下面的时间节点对OpenCV的发展都产生过重要影响,具体如下。

OpenCV支持Java语言开发的Android SDK最早是始于2010年。在OpenCV3.x版本中,OpenCV更加强调对移动端与嵌入式设备的支持。

(1)编程语言

OpenCV中的这些模块大多数都是基于C/C++完成的,少量的SDK接口模块使用Java、Python等语言开发。在最新开发的OpenCV的核心模块中,C++替代C成为了开发语言。

(2)应用领域

OpenCV自从1.0版本发布以来,立刻吸引了许多公司的目光,被广泛应用于许多领域的产品研发与创新上,相关应用包括卫星地图与电子地图拼接,医学中图像噪声处理、对象检测,安防监控领域的安全与入侵检测、自动监视报警,制造业与工业中的产品质量检测、摄像机标定,军事领域的无人机飞行、无人驾驶与水下机器人等众多领域。

1.1.2 OpenCV模块介绍

OpenCV分为正式的发布版本与扩展模块,Android SDK所对应的是OpenCV的发布版本,其扩展模块的功能可以通过源代码编译的方式进行集成与开发,关于扩展模块的编译与使用已经超出了本书的讨论范围,这里就不再赘述了。下面以OpenCV3.3为例,OpenCV正式发布版本中包含的核心功能模块具体如下。

除上所述的核心功能模块之外,其扩展模块更加的庞大与繁杂。OpenCV Android SDK可以从其官方主页上下载获得,下载地址为: http://opencv.org/opencv-3-3.html ,在最下面就可以发现Android SDK的下载链接,点击就可以直接去相关页面上下载最新的Android SDK。

1.1.3 OpenCV Android SDK

OpenCV Android SDK本质上是使用Java语言接口通过JNI技术调用OpenCV C/C++代码完成的算法模块。OpenCV4Android本身并不是一个纯Java语言的计算机视觉库,而是基于OpenCVC++本地代码、通过Java语言接口定义,基于JNI技术实现调用C++本地方法的SDK开发包。所以当你下载好OpenCV Android SDK之后,在它的SDK目录下可以看到如图1-1所示的目录结构。

图 1-1

其中,etc目录里面有两个文件夹,里面都是一些XML数据文件,这些XML数据是训练好的HAAR与LBP级联分类器数据;java目录里面是Android SDK相关文件;native里面则是基于C/C++编译好的OpenCV Android平台支持的本地库文件、JNI层开发所需要的头文件及cmake文件,其中库文件大多数以*.a和*.so结尾。而在与SDK同层级的samples目录中则包含了OpenCV Android SDK的一些应用案例教程,以供初学者参考,但是很不幸的是,直到今天为止,这些教程仍然还是基于Eclipse开发环境来演示OpenCV功能,不得不说这是一个小小的缺憾,希望OpenCV社区在后面的Open CV版本中能够更新这些教程,使其基于Android Studio来演示。

此外,OpenCV Android SDK的功能与OpenCV对应发布版本中的功能完全相同,唯一不同的是因为Java语言的关系,Java层封装的接口的参数传递和方法调用,与C++的接口相比有一些差异,这些都是为了更适应Java语言的特性而做出的改动,使得Android开发者更加容易学习与使用OpenCV来解决问题。 aKB4Hww9F/mC/ISZNs+pWesRxUduQT4NtkrZK3yoe1pSPBj7E7Y4amanzMOoQkgt

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开