什么是OpenCV ?linux
OpenCV的全称是:Open Source Computer Vision Library算法
OpenCV是Intel开源计算机视觉库。它由一系列 C 函数和少许 C++ 类构成,实现了图像处理和计算机视觉方面的不少通用算法。编程
优势:函数
一、 OpenCV 对非商业应用和商业应用都是免费的;工具
二、 开源的;优化
三、 能够应用于工程实践中;spa
缺点:设计
相对于Matlab而言,OpenCV基于C语言开发,编程复杂,开发周期较长。orm
能够看出,OpenCV的优缺点正好与Matlab的优缺点相反,二者各有所长,根据不一样的要求选择不一样的编程环境。视频
应用领域:
一、人机互动 二、物体识别 三、图象分割 四、人脸识别 五、动做识别 六、运动跟踪 七、机器人
为何有OpenCV?
计算机视觉市场巨大并且持续增加,且这方面没有标准API,目前的计算机视觉软件大概有如下三种:
1.研究代码(慢,不稳定,独立并与其余库不兼容)
2.耗费很高的商业化工具(好比Halcon, MATLAB+Simulink)
3.依赖硬件的一些特别的解决方案(好比视频监控,制造控制系统,医疗设备)
这是目前的现状。而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV致力于成为这样的标准API。
项目历史:
1999年1月,CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器作了特定优化。2000年6月,第一个开源版本OpenCV alpha 3发布。2000年12月,针对linux平台的OpenCV beta 1发布。期间,继续各类研究。。。2006年,支持Mac OS的OpenCV 1.0发布。2009年9月,OpenCV1.2(beta2.0)发布。2009年10月1日,Version 2.0发布。 OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可使用某些外部库。 OpenCV 使用类BSDlisence,因此对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)。 OpenCV 为Intel Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着若是有为特定处理器优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。 OpenCV提供的视觉处理算法很是丰富,而且他不分以C语言编写,加上其开源的特性,处理得当,不须要添加新的外部支持也能够完整的编译连接生成执行程序,因此不少人用它来作算法的移植,OpenCV的代码通过适当改写能够正常的运行在DSP系统和单片机系统中,目前这种移植在大学中常常做为相关专业本科生毕业设计或者研究生课题的选题。