1、OpenCV简介
OpenCV近几年随着视频设备的广泛使用,发展的非常之快。中国的大部分视频应用几乎都用了其中的代码。但是由于各种原因,OpenCV的资料却比较杂乱,本人基于学习和使用和一些经验体会,整理如下,供参考:
OpenCV(http://opencv.org/)最初是Intel?开发的一个计算机视觉软件库,现在开源后已经成为使用广泛、发展快速的通用计算机视觉库,很多车牌识别、人脸认证等应用大部分都是基于OpenCV开发的。
2、OpenCV支持能力
OpenCV是实时的图像处理处理框架(不同于其它的后台图像处理软件),由一系列C函数和C++类构成,实现了图像处理和计算机视觉方面的很多通用算法,包括视频读写、图形细化、边缘检测、图像变换、模式识别、人脸检测等经典算法。OpenCV3进一步完善和规范了接口,还加入了光流等现代图像算法。OpenCV既能直接用于生产性工作中,也是一个极佳的算法研究和试验场地,而且通过一个开放的框架,可以将成熟的算法直接整合到应用工作之中,并与业界的专家和工业部分进行共享和相互促进。
OpenCV支持很多种设备和操作系统除了台式机、工作站外,还可以运行在iOS和Android以及各种嵌入式Linux设备上,在机器视觉、人工智能、自动驾驶、无人机、智能设备等领域都有广泛的应用。
3、OpenCV开发与接口
OpenCV支持多种开发接口,除了原生的C/C++外,还支持.NET/Java/Python等其他开发语言。
OpenCV的源代码目前由Itseez在维护,最新的版本在https://github.com/Itseez 可以直接git clone下来进行编译即可。
OpenCV 为Intel? Integrated Performance Primitives (IPP) 提供了透明接口。 如果有为特定处理器优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。 更多关于 IPP 的信息请参考: http://www.intel.com/software/products/ipp/index.htm
4、OpenCV主要功能
OpenCV功能模块包含如下几个部分:
- Cxcore:一些基本函数(各种数据类型的基本运算等)。
- Cv:图像处理和计算机视觉功能(图像处理,结构分析,运动分析,物体跟踪,模式识别,摄像机定标)
- Ml:机器学习模块,目前内容主要为分类器。
- Cvaux:一些实验性的函数(ViewMorphing,三维跟踪,PCA,HMM)
- Highgui:用户交互部分,(GUI,图象视频I/O,系统调用函数)
5、OpenCV实用开发资源
- Linux上安装OpenCV: http://my.oschina.net/zhangxu0512/blog/177927
- MacOS 安装OpenCV:http://my.oschina.net/redhouse/blog/71178
- Python中使用OpenCV:http://my.oschina.net/u/63375/blog/185426
- Qt中使用OpenCV:http://my.oschina.net/xunxun/blog/86789
- QML中使用OpenCV:http://my.oschina.net/u/854744/blog/418538
- 计算机视觉的牛人博客列表:http://my.oschina.net/u/1426828/blog/368328
后续,将继续介绍OpenCV3的最新特征、源代码编译攻略、HighGUI使用经验等。