OpenCV 全称为OpenSourceComputerVisionLibrary,是一个跨平台的开源计算机视觉和机器学习软件库,可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。
OpenCV旨在为计算机视觉应用程序提供通用基础架构,并加速机器感知在商业产品中的使用。
该库有2500多种优化算法,其中包括一套全面的经典和最先进的计算机视觉和机器学习算法。这些算法可用于检测和识别人脸、识别物体、对视频中的人类行为进行分类、跟踪摄像机运动、跟踪移动物体、提取物体的三维模型、从立体摄像机中产生三维点云、将图像拼接起来以产生整个场景的高分辨率图像、从图像数据库中找到类似的图像、从使用闪光灯拍摄的图像中去除红眼、跟踪眼睛的运动、识别风景并建立标记以叠加到增强现实中等等。OpenCV拥有超过4.7万人的用户群,估计下载量超过1800万。该库在公司、研究小组和政府机构中被广泛使用。除了谷歌、雅虎、微软、英特尔、IBM、索尼、本田、丰田等知名公司外,还有许多初创公司,如AppliedMinds、VideoSurf和Zeitera等都在广泛使用OpenCV。OpenCV的应用范围很广,包括将街景图像拼接在一起,在以色列检测监控视频中的入侵行为,在中国监控矿山设备,在WillowGarage帮助机器人导航和拾取物体,在欧洲检测游泳池溺水事故,在西班牙和纽约运行互动艺术,在土耳其检查跑道上的碎片,在世界各地的工厂检查产品的标签,以及在日本快速检测人脸。它有C++、Python、Java和MATLAB接口,支持Windows、Linux、 Android 和MacOS。OpenCV主要倾向于实时视觉应用程序,并在可用时利用MMX和SSE指令。 目前正在积极开发功能齐全的 CUDA 和 OpenCL接口。有超过500种算法和大约10倍的函数组成或支持这些算法。OpenCV是用C++原生编写的,具有可与STL容器无缝协作的模板化接口。OpenCV具有模块化结构,这意味着该软件包包含多个共享或静态库。以下模块可用:核心功能(core)-定义基本数据结构的紧凑模块,包括密集的多维数组Mat和所有其他模块使用的基本功能。图像处理( imgproc )-一个图像处理模块,包括线性和非线性图像过滤、几何图像变换(调整大小、仿射和透视变形、通用的基于表格的重新映射)、色彩空间转换、直方图等。VideoAnalysis ( video )-一个视频分析模块,包括运动估计、背景减除和对象跟踪算法。相机校准和3D重建( calib3d )-基本的多视图几何算法、单相机和立体相机校准、物体姿态估计、立体对应算法和3D重建的元素。2D特征框架( features2d )-显着特征检测器、描述符和描述符匹配器。对象检测( objdetect )-检测预定义类的对象和实例(例如,面部、眼睛、杯子、人、汽车等)。高级GUI ( highgui )-简单UI功能的易于使用的界面。视频I/O ( videoio )-一个易于使用的视频捕获和视频编解码器接口。...一些其他帮助模块,例如FLANN和Google测试包装器、Python绑定等。
评论