OpenCV是做什么的,我就不多说了,大家网上查找答案,一抓一大把。
目前已经更新到了3.4.1版本。3.0及以上版本和之前的版本做一个比较有一个明显不同就是:架构设计区别
。
3.0以前:整体架构思想,所有功能都放在一起
3.0以后:核心+插件 思想,
核心功能模块
- core,核心功能模块,主要包含如下的内容:
OpenCV基本数据结构(Basic Structures);
基本的C语言数据结构和操作(Basic C Structures and Operations);
动态数据结构(Dynamic Structures);
数组操作相关函数(Operations on Arrays);
绘图功能(Drawing Functions);
XML和YAML语法的支持(XML/YAML Persistence);
XML和YAML语法的支持的C语言接口(XML/YAML Persistence (C API));
聚类(Clustering);
辅助功能与系统函数和宏(Utility and System Functions and Macros);
与OpenGL的互操作(OpenGL interoperability);- imgproc,是Image Processing的简写。图像处理模块,主要包含以下内容:
线性和非线性的图像滤波(Image Filtering);
图像的几何变换(Geometric Image Transformations);
图像的其他变换(Miscellaneous Image Transformations);
直方图(Histograms);
结构分析和形状描述(Structural Analysis and Shape Descriptors);
运动分析和目标跟踪(Motion Analysis and Object Tracking);
特征检测(Feature Detection);
目标检测(Object Detection); - highgui,是High-level GUI and Media I/O的简写。高层用户界面模块和媒体输入/输出模块,主要包含以下内容:
用户界面(User Interface);
图片和视频的读写(Reading and Writing Images and Video);
QT新功能(Qt New Functions); - features2d,是2D Features Framework的简写。二维特征框架模块,主要包含以下内容:
人脸识别
VR和AR
特征的检测和描述(Feature Detection and Description);
特征检测器的通用接口(Common Interfaces of Feature Detectors);
描述符提取器的通用接口(Common Interfaces of Descriptor Extractors);
描述符匹配器的通用接口(Common Interfaces of Descriptor Matchers);
通用描述符匹配器通用接口(Common Interfaces of Generic Descriptor Matchers);
关键点和匹配结果的绘制功能(Drawing Function of Keypoints and Matches);
目标分类(Object Categorization); - flann,Clustering and Search in Multi-Dimensional Spaces,多维空间聚类和搜索模块,主要包含以下内容:
快速近视最近邻搜索(Fast Approximate Nearest Neighbor Search);
聚类(Clustering); - video,是Video Analysis的简写。视频分析模块,主要包含以下内容:
运动分析和目标跟踪(Motion Analysis and Object Tracking),视频相关的,上面提到的是图片相关的; - calib3d ,是Camera Calibration and 3D Reconstruction的简写。这个模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立体摄像头标定、物体姿态估计、立体相似性算法,3D信息的重建等
- ml,机器学习库:统计模型、随机树、神经网络等等…
- objdetect->目标检查库
- video->视频分析组件:运动估计、背景分离、对象跟踪等等…
- photo->图像修复和图像去噪两部分
架构设计改变:整体架构->转变到->核心+插件架构体系
- imgproc,是Image Processing的简写。图像处理模块,主要包含以下内容:
网友评论