上一篇中主要介绍了在AS环境搭建OpenCV的开发环境,本篇就来简单介绍一下OpenCV是什么以及基本应用等信息。不感兴趣的可以直接跳过。
1,OpenCV是什么
OpenCV是Open Source Computer Vision Library的简称,也即开放的计算机视觉库。具体请参见:http://opensource.org
可在Windows,Linux,Mac OS,ios以及Android平台做应用开发。主要是通过c/c++编写。此外还提供了Python,Ruby以及Matlab以及其他语言的开发接口。
2,应用领域
- 卫星地图
- 扫描图像
- 医学图像去燥
- 物体识别
- 安全与入侵检测系统
- 无人飞机与无人驾驶
其实还有很多,而且每一个类中有包含很多更细拆分的应用,比如物体识别中物体可以是人脸,可以是动物,可以是车牌号等等。尤其在当前AI 火热的时候,人脸识别作为机器的眼睛,显得尤为重要。而我学习OpenCV主要目的也是针对于人脸识别。
3,当前OpenCv的核心模块有哪些
这里我只结合Android 平台来说,所以我们首先打开OpenCV官网,进入到如下关于OpenCV的介绍的模块介绍:
这就是目前核心模块列表,具体的翻译我就不做了,也没有什么意义,在该列表下面还有一个Extra Modules列表:
其中,我们后续要研究的人脸识别也是出于Extra Modules列表中。
4,计算机视觉的定义与来源
定义:计算机视觉是将来静止图像或者视频的数据转换成一个决策或者一种新的表达方式的过程,所以的这些转换都是为了达到某一个目标。
来源:OpenCV诞生于Intel研究中心,其目的是为了促进CPU密集型应用。
目的:OpenCV目的是开发开发一个普遍可用的计算机视觉库。
本身计算机视觉包括的领域非常之多,我们也只能去学习和研究其中的一个很小的领域,而这里,我主要是用于人脸识别研究和学习。
5,OpenCV属于谁
OpenCV项目有Intel发起,但是其现在是开放源代码的。且是BSD开源许可的计算机视觉开发框架。允许在学术研究与商业应用中免费使用它。关于BSD其实有兴趣的也可以查查看,它是一个Unix重要分支。全称是Berkeley Software Distribution(BSD);它是当年Sun公司创办人之一的Berkeley大学的Bill Joy获取到Unix内核源码后,着手修改成适合自己机器的版本并且同时增加了很多工具软件与编译程序,最终命名为BSD。更多关于BSD的介绍可以查看百度百科。此外我们还说到,其起源于Intel,所以Intel对其提供了IPP(Intel 性能基元)加速,但是OpenCV不依赖于IPP,也就是如果你安装了IPP,OpenCV就会自动载入IPP动态链接库获取IPP的加速优势,没有也无所谓。