Opencv3.4.1模块各个模块介绍

 

从opencv3开始就把整个库拆分成了两个库模块,Main modules和Extra modules这两部分,从网上下载的库默认都是Main module,它里面都是一些比较稳定的核心算法库,而Extra modules都是一些试验性质的库,很多新的算法库都会放到这里面来。从opencv3开始所有的库都会编译一个dll,而opencv2会将各个主要模块都分别编译成dll。

 

Core  核心功能模块

1. 基本的数据结构

2. 动态结构(从2.0开始基本都采用了vector结构)

3. 数组的一些操作(add, abs等)

4. 基本的绘图功能(点,线,框,圆等)

5. 系统函数交互和宏

6. Opengl的交互操作

Imgproc  图像处理模块

1. 图像滤波

2. 图像的几何变换

3. 其它(miscellaneous)图像变换

4. 绘图功能

5. 一些颜色表类型

6. 2D点的拓扑连接

7. 直方图操作

8. 结构分析和形状描述

9. 运动分析和目标跟踪

10. 特征检测和目标监测(canny, hough变换,模版匹配)

11. 硬件加速模块

Imgcodes  图像读写模块

图像的文件的读和写(包含编解码)

 

 

 

 

 

Videoio 视频读写接口

对视频的读或者捕捉以及写视频文件的接口

Video 视频分析模块

对视频中的运动建模分析,视频中的目标进行跟踪

 

Highgui视频分析模块

高级的图形交互界面,包括控制显示窗口, 鼠标交互,图像视频的显示

 

calib3d 相机标定和三维重建模块

1. 提取相机标定的角点以及角点的显示

2. 相机的单目以及立体标定

3. 基于影像求解基础矩阵和本质矩阵

4. 由本质矩阵估计相机的姿态(opencv3以后增加了)

5. 相机的外参数的估计

6. 图像的畸变矫正和核线校正

7. 生产点云(包括视差的方式以及三角化的方式)

在Extra modules中会有一些三维重建的算法包括影像建模,结构光编码等。同时还有一些最近比较流行的实时相机姿态估计的方式(sfm, slam)。

 

Features2d 2D特征框架

这是一个抽象的接口框架:

1. 特征提取和描述子

2. 描述子匹配

3. 画出特征点以及匹配关系

Opencv2中像orb, fast, brief,surf, sift都在这个框架中, 在opencv3里面将sift, surf移到了Extra modules,当需要使用这两种特征的时候需要将Extra modules编译到主库中。

 

 

Flann 高维的近似近邻快速搜索算法库

主要包含聚类和快速近似最近邻搜索

ML 机器学习模块

实现了一些基本的统计机器学习,回归算法,聚类算法。(boost, svm, knn等)

Dnn深度学习

1. 提供了blobFromImage将图像数据转换成了网络中所用的输入blob

2. 提供了readNet*一系列的函数用于读取(caffe, tensorflow, torch等)训练好的

        网络得到一个Net类,然后调用前向传播函数就可以得到实际学习的结果


还提供了一些基本的layer, net的类用于构建网络,在Extra modules还实现了faster R_CNN, SSD等图像检测算法。

 

Stitching 图像拼接

 

opencv各模块功能 opencv模块介绍_3D

Viz 3D可视化

3D显示窗体,可以显示相机的姿态,点云,网格,在3D视觉中用得到。

 

CUDA模块

用于前面算法的一些加速模块的函数