OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了
图像处理和计算机视觉方面的很多通用算法。
目录
1简介编辑
OpenCV于1999年由
Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于
[1]
(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了
图像处理和计算机视觉方面的很多通用算法。
[2]
最新版本是2.4.8。
OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。
OpenCV 为Intel® Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着如果有为特定处理器优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。
[3]
2历史发展编辑
1999年1月,CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。
2000年6月,第一个开源版本OpenCV alpha 3发布。
2000年12月,针对linux平台的OpenCV beta 1发布。
期间,继续各种研究。。。
2006年,支持Mac OS的OpenCV 1.0发布。
2009年9月,OpenCV 1.2(beta2.0)发布。
2009年10月1日,Version 2.0发布。
2010年12月6日,OpenCV 2.2发布。
2011年8月,OpenCV 2.3发布。
2012年4月2日,发布OpenCV 2.4.
OpenCV 使用类BSDlicense,所以对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)。
OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以很多人用它来做算法的移植,OpenCV的代码经过适当改写可以正常的运行在DSP系统和单片机系统中,这种移植在大学中经常作为相关专业本科生毕业设计或者研究生课题的选题。
3优势编辑
为什么有OpenCV
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉
软件大概有以下三种:
1.研究代码(慢,不稳定,独立并与其他库不兼容)
2.耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)
OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其
执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。右图为OpenCV与当前其他主流视觉函数库的性能比较。
4应用领域编辑
1、人机互动
2、物体识别
3、
图象分割
4、
人脸识别
5、动作识别
6、
运动跟踪
7、机器人
8、运动分析
9、机器视觉
10、结构分析
5其他相关编辑
作者列表可以在AUTHORS文件中找到。
此外,还有很多人给出了建议、
补丁、BUG 报告等等,在文件THANKS中对此有一个不完全的列表。
想要了解OpenCV的新特征,请参考OpenCVChangeLog。
如果有问题,在Google中输入"OpenCV"搜索。
如果在安装/运行/使用OpenCV中遇到问题
1、阅读FAQ中文
2、在 OpenCV 邮件列表中搜索。
3、加入到 yahoo group 上的 OpenCV 邮件列表中(如何加入请参考 FAQs),并发送你的问题到邮件列表中。(这个邮件列表可能会迁移到OpenCV's SourceForge site)
4、参考 OpenCV 的例子代码,阅读参考手册
6编程语言编辑
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。
所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
7系统支持编辑
OpenCV可以在 Windows, Android, Maemo,FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平台上运行。使用者可以在 SourceForge 获得官方版本, 或者从 SVN 获得开发版本。OpenCV也是用 CMake.
Windows prerequisites
在Windows上编译OpenCV中与摄像输入有关部分时,需要DirectShow SDK中的一些基类。该SDK可以从预先编译的Microsoft Platform SDK (or DirectX SDK 8.0 to 9.0c / DirectX Media SDK prior to 6.0)的子目录Samples\Multimedia\DirectShow\BaseClasses获得。
8版本发布编辑
2011年06月25日,OpenCV-2.3.0rc 发布了,新增加了一个stitching拼接模块,Android支持更加方便了,使用Google test框架,其他变化主要是内部性能改进。
2013年07月03日,OpenCV 2.4.6发布。
主要更新是关于手持设备方面的:
首先,OpenCV 2.3的Android build终于变成了官方支持的NDK-Build的方式了。以前的方法相当让人头疼,使用的非Android官方的方法去写JNI接口,tutorial跟着走一遍也不知道所以然。
2013年12月31日,OpenCV 2.4.8发布。
-
参考资料
-
-
1. BSD许可证 .百度百科 [引用日期2012-06-29] .
-
2. 布拉德斯基,克勒著,于仕琪,刘瑞祯译。学习OpenCV.清华大学出版社,2009.10, 1~16,351~355
-
3. 计算机视觉库 OpenCV .开源社区网 [引用日期2012-09-11] .
-
4. OpenCV 编程简介 .OpenCV 编程简介 [引用日期2013-05-30] .
-
5. OpenCV 2.2.0 正式版发布 .开源社区网 [引用日期2012-09-25] .
-
6. OpenCV-2.3.0rc 发布了 .开源社区网 [引用日期2012-09-25] .
-