第一节 OpenCV概述

1、什么是OpenCV


OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。 OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。 作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。

该库具有2500多种优化算法,其中包括一整套经典和最新的计算机视觉和机器学习算法。 这些算法可用于检测和识别面部,识别对象,对视频中的人为行为进行分类,跟踪摄像机的运动,跟踪运动的对象,提取对象的3D模型,从立体摄像机生成3D点云,将图像缝合在一起以产生高分辨率 整个场景的图像,从图像数据库中查找相似的图像,从使用闪光灯拍摄的图像中消除红眼,跟随眼睛的运动,识别风景并建立标记以将其与增强现实叠加在一起等。

它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。 OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令。 目前正在积极开发功能齐全的CUDA和OpenCL接口。 有500多种算法,而构成或支持这些算法的功能大约是其10倍。 OpenCV用C ++原生编写,并具有可与STL容器无缝配合的模板化接口。

OpenCV具有高度可移植性,几乎在的商用系统都可以使用。

2、OpenCV模块说明


​ 块(module)是OpenCV库组成的基本单位,OpenCV目前主要由以下库组成:

  • core:基础模块,包含了OpenCV的基础数据结构及基本操作

  • imgproc:图像处理模块,包含图像的基本操作,快速卷积等

  • imgcodecs:图像解码及编码模块

  • highgui:简单的高级GUI模块

  • videoio:视频模块,包含视频的基本读写

  • video:视频分析模块

  • calib3d:相机校正及3D重建模块

  • features2d:2D特征模块,包括检测、描述、匹配

  • objdetect:目标检测模块

  • dnn:深度神经网络模块

  • ml:机器学习模块

  • flann:多维空间中的聚类和搜索模块

  • photo:计算摄影模块,主要包含计算摄影学的一些工具函数

  • stitching:图像拼接模块

  • gapi:Graph API模块

    另外,opencv_contrib包含了非常多的模块主要由社区开发和维护,在这里就不一一做说明了,有兴趣的同学可以参考官网描述。

参考

-[1].About OpenCV

-[2].OpenCV docs

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐