第一章 概述

当前模块:

core:是库的一部分,包含基本对象类型和它们的基本操作。

imgproc:图像处理模块包含图像的基本变换,包括滤波器和类似的卷积运算符。

highgui (在OpenCV3.0中分成了imgcodecs, videoio, and highgui):此模块包含用户界面功能,可用于显示图像或进行简单的用户输入。它可以被认为是一个非常轻量级的窗口UI工具包。

video:视频库包含读取和写入视频流所需的函数。

calib3d:该模块包含校准单个摄像机以及立体或多摄像机阵列所需的算法实现。

features2d:该模块包含用于检测,描述和匹配关键点特征的算法。

objdetect:该模块包含用于检测特定目标(例如面部或行人)的算法。您可以训练探测器以检测其他物体。

ml:机器学习库本身实际上是一个完整的库,它包含各种机器学习算法,这些算法的实现方式是使用OpenCV的自然数据结构(natural data structures)。

flann:FLANN代表“近似最近邻快速库”。该库包含您不可能直接使用的方法,但其他模块中的其他函数使用这些方法在大型数据集中进行最近邻搜索。

gpu(在OpenCV3.0中分成了多个cuda*模块):GPU库包含为在CUDA GPU上操作而优化的大多数库函数的实现。还有一些仅针对GPU操作实现的功能。其中一些提供了出色的结果,但需要足够高的计算资源,以至于非GPU硬件上的实现几乎没有用处。

photo:这是一个相对较新的模块,包含对计算摄影有用的工具。

stitching:整个模块实现了复杂的图像拼接管道。这是库中的新功能,但是,与照片模块一样,它是预期未来增长的领域。

nonfree(在OpenCV3.0中移动到了opencv_contrib/xfeatures2d):OpenCV包含一些算法的实现,这些算法已获得专利或受到使用限制(例如,SIFT算法)的负担。这些算法被分隔成他们自己的模块,表明你需要做一些特殊的工作才能在商业产品中使用它们。

contrib:该模块包含尚未集成到整个库中的新内容。

legacy(在OpenCV3.0中去掉):这个模块包含了尚未从库中消除的旧事物。

ocl (在OpenCV3.0中去掉;以T-API technology替代):这是一个较新的模块,可以被认为类似于GPU模块,除了它实现了用于开放式并行编程的Khronos OpenCL标准。虽然此时功能远不如GPU模块,但ocl模块旨在提供可在任何GPU或其他支持Khronos的并行设备上运行的实现。 (这与gpu模块形成对比,后者明确地使用了NVidia CUDA工具包,因此仅适用于NVidia GPU设备。)

OpenCV贡献存储库中的一些可用模块:

Dnn:深度神经网络

face:人脸识别

text:文本检测和识别;可以选择使用开源OCR Tesseract作为后端

rgbd:处理RGB +深度图,使用Kinect和其他深度传感器获得(或使用立体匹配算法简单计算)

bioinspired:仿生视觉

ximgproc,xphoto:先进的图像处理和计算摄影算法

tracking:现代目标跟踪算法