在OpenCV官方的文档中有个参考页,叫做Reference,这个参考页按照OpenCV的结构分成许多小版块,叫做Module(模块),我们先来看看OpenCV中有哪些模块。
- core
“core”模块中包含了OpenCV库基本的对象类型及其操作 - imgproc
“image processiing”(图形处理)模块包含了基本的图形变换操作,包括一些滤波器和卷积操作 - highgui
“high-level GUI”模块在OpenCV 3.0以后就分成 imgcodecs,videoio和highgui三个模块。显而易见,这个模块包含了一些用户界面函数,用来显示图片,处理简单的用户输入。你可以把它看作是轻量级的UI工具包。 - video
“video”模块包含一些读取写入视频流的操作 - calib3d
“calibration 3d”(3D校准)这个模块包含了一些校准一个或多个摄像机的算法 - features2d
这个模块包含了一些寻找、描述和匹配关键特征的算法 - objdetect
这个模块包含了一些识别特定目标的算法,例如说人脸识别、行人识别。你可以通过训练分类器来识别其它的物体。 - ml
“Mechine Learning”这个模块的容量已经可以被当做一个库来看待。这个库包含了大量以OpenCV数据结构运行的机器学习算法 - flann
“Fast Library for Approximate Nearest Neighbors.”包含了一些经常被其它模块间接使用的最近邻算法 - cuda
CUDA GPU可以加速的一些函数 - photo
用来计算图像的新模块 - stitching
这个模块提供了一个强大的图像拼接通道 - nonfree(OpenCV3.0以后移动到xfeatures2d)
包含了一些有专利保护的算法,比如说SIFT(尺度不变特征变换),如果你要用到商业产品可能需要做一点功课 - legacy
一些前人留下来的遗产 - ocl
可以理解为另一个GPU模块,只不过它使用了Khronos OpenCL 标准,这个模块被设计用来在任何GPU上运行程序
OpenCV还有一个contrib用来存放不太稳定的模块
- dnn
深度神经网络 - face
人脸识别 - rgbd
处理RGB+深度图... - bioinspired
仿生视觉 - ximgproc,xphoto
先进的图像处理算法 - tracking
现代物体追踪算法