OpenCV主体分为5大模块,其中4个模块如下图所示:OpenCV的CV模块包含基本的图像处理函数和高级的计算机视觉算法;ML是机器学习库,包含一些基于统计的分类和聚类工具;HighGUI包含图像和视频输入/输出的函数;CXCore包含OpenCV的一些基本数据结构和相关函数。
上图中并没有包含CvAux模块,该模块一般存放一些即将被淘汰的算法和函数(如基于嵌入式隐马尔可夫模型的人脸识别算法),同时还有一些新出现的实验性的算法和函数(如背景和前景的分割)。CvAux包含以下一些内容:
- 特征物体,它是一个模式识别领域里用于降低计算量的方法,本质上依然是模板匹配
- 一维和二维隐马尔可夫模型(HMM),它是一个基于统计的识别方法,用动态规划来求解
- 嵌入式HMM
- 通过立体视觉来实现的动作识别
- Delaunay三角划分。序列等方法的扩展
- 立体视觉
- 基于轮廓线的形状匹配
- 纹理描述
- 眼睛和嘴的跟踪
- 3D跟踪
- 寻找场景中的物体的骨架(中心线)
- 通过两个不同视角的图像合成中间的图像
- 前景/背景分割
- 视频监控
- 摄像机标定的C++类
OpenCV模块官网详细说明:OpenCV模块
官网OpenCV模块分类:
- 主要模块:
- 额外模块:
- aruco。ArUco标记检测
- bgsegm。改进的背景 - 前景分割方法
- 仿生。生物启发的视觉模型和衍生工具
- ccalib。用于3D重建的自定义校准模式
- cnn_3dobj。3D对象识别和姿势估计API
- cudaarithm。矩阵运算
- cudabgsegm。背景分割
- cudacodec。视频编码/解码
- cudafeatures2d。特征检测和描述
- cudafilters。图像过滤
- cudaimgproc。图像处理
- cudalegacy。遗产支持
- cudaobjdetect。物体检测
- cudaoptflow。光流
- cudastereo。立体声通信
- cudawarping。图像变形
- cudev。设备层
- CVV。用于计算机视觉程序的交互式可视化调试的GUI
- 数据集。使用不同数据集的框架
- dnn_objdetect。DNN用于对象检测
- DPM。可变形的基于零件的模型
- 面对。面部分析
- FreeType的。使用freetype / harfbuzz绘制UTF-8字符串
- 模糊。基于模糊数学的图像处理
- HDF。分层数据格式I / O例程
- HFS。高效图像分割的层次特征选择
- img_hash。该模块带来了不同图像散列算法的实现。
- line_descriptor。从图像中提取的线的二进制描述符
- optflow。光流算法
- 绵羊。OGRE 3D Visualiser
- phase_unwrapping。Phase Unwrapping API
- 情节。Mat数据的绘图功能
- REG。图像注册
- RGBD。RGB深度处理
- 显着性。显着性API
- SFM。运动结构
- 立体声。立体声对应算法
- structured_light。结构光API
- surface_matching。表面匹配
- 文本。场景文本检测与识别
- 跟踪。跟踪API
- xfeatures2d。额外的2D功能框架
- ximgproc。扩展图像处理
- xobjdetect。扩展对象检测
- xphoto。其他照片处理算法
革命尚未成功,同志仍需努力。