OpenCV 4.x API 详解与C++实例-OpenCV概述
第一节 OpenCV概述1、什么是OpenCVOpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。 OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。 作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。该库具有2500多种优化算法,其中包括一整套经典和最新的计算机视觉和机器学习算法。 这些算法可用于检测和识别面部,识别对
第一节 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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)