OpenCV 2.4.9核心模块介绍

  OpenCV主要的核心模块如下图所示,这些模块非常重要,下面将按照图片上的顺序对这些核心模块的作用进行简单的介绍,在我自己的电脑里,放在C:\Users\cyk6625\Downloads\opencv\build\include\opencv2路径下。

这里写图片描述

1、calib3d模块   它就是Calibration(校准)加3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容。基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建等等。   相机标定用于去除相机自身缺陷导致的画面形变,还原真实的场景,确保计算的准确性。三维重建通常用在双目视觉(立体视觉),即两个标定后的摄像头观察同一个场景,通过计算两幅画面中的相关性来估算像素的深度。 2、contrib模块    它是Contributed/Experimental Stuf的缩写, 该模块包含了一些最近添加的不太稳定的可选功能,不用去关心。2.4.9里的这个模块有新型人脸识别,立体匹配,人工视网膜模型等技术。这些是一些开发者新贡献出来的尚不成熟的代码。 3、core模块   核心功能模块,包含如下内容:   (1)定义了基本的数据结构,包括最重要的 Mat 类、XML 读写、opengl三维渲染等;   (2)动态数据结构;   (3)绘图函数;   (4)数组操作相关函数;   (5)辅助功能与系统函数和宏;   (6)与OpenGL的互操作。 4、imgproc模块   它是Image和Processing这两个单词的缩写组合。也就是图像处理模块,是计算机视觉的重要工具,这个模块包含了如下内容:   (1)线性和非线性的图像滤波;   (2)图像的几何变换;   (3)其它(Miscellaneous)图像转换;   (4)直方图相关;   (5)结构分析和形状描述;   (6)运动分析和对象跟踪;   (7)特征检测;   (8)目标检测等内容。 5、features2d模块   二维特征检测与描述模块。它包含 2D 特征值检测的框架。包含各种特征值检测器及描述子,例如 FAST、MSER、OBRB、BRISK等。各类特征值拥有统一的算法接口,因此在不影响程序逻辑的情况下可以进行替换。可将该模块的内容概括如下:   (1)特征检测和描述;   (2)特征检测器(Feature Detectors)通用接口;   (3)描述符提取器(Descriptor Extractors)通用接口;   (4)描述符匹配器(Descriptor Matchers)通用接口;   (5)通用描述符(Generic Descriptor)匹配器通用接口;   (6)关键点绘制函数和匹配功能绘制函数。 6、flann模块   它是Fast Library for Approximate Nearest Neighbors的缩写,高维的近似近邻快速搜索算法库,用于在多维空间内聚类及搜索的近似算法,做图像检索的读者对它不会陌生。 7、gpu模块    它是运用GPU加速的计算机视觉模块,包含一些可以利用cuda进行加速的函数。 8、highgui模块   它是就是high gui的合写,即高层GUI图形用户界面,包含媒体的I/O输入输出,视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。 9、legacy模块   一些已经废弃的代码库,保留下来作为向下兼容,包含如下相关的内容:   (1)运动分析;   (2)期望最大化;   (3)直方图;   (4)平面细分(CAPI);   (5)特征检测和描述(Feature Detection and Description);   (6)描述符提取器(Descriptor Extractors)的通用接口;   (7)通用描述符(Generic Descriptor Matchers)的常用接口;   (8)匹配器。 10、ml模块   它是Machine Learning的缩写,即机器学习模块, 基本上是统计模型和分类算法,包含如下内容:   (1)统计模型 (Statistical Models);   (2)一般贝叶斯分类器 (Normal Bayes Classifier);   (3)K-近邻 (K-NearestNeighbors);   (4)支持向量机 (Support Vector Machines);   (5)决策树 (Decision Trees);   (6)提升方法(Boosting);   (7)梯度提高树(Gradient Boosted Trees);   (8)随机森林(Random Trees);   (9)超随机森林(Extremely randomized trees);   (10)期望最大化 (Expectation Maximization);   (11)神经网络 (Neural Networks);   (12)MLData。 11、nonfree模块   这是一些具有专利的算法模块 ,包含特征检测和GPU相关的内容。其中有SIFT和SURF,从功能上来说这两个算法属于features2d模块的,但由于它们都是受专利保护的,想在项目中可能需要专利方的许可。 12、objdetect模块   目标检测模块,包含Cascade Classification(级联分类)、Latent SVM、基于Haar特征或HBP特征(local binary patterns)特征的人脸检测和基于HOG(history of oriented gradient )特征的人体检测以及文字检测等。 13、ocl模块   即OpenCL-accelerated Computer Vision,是运用OpenCL加速的计算机视觉组件模块。 14、photo模块    它是Computational Photography的缩写,包含图像修复和图像去噪、HDR成像和非真实感渲染等。 15、stitching模块   images stitching,图像拼接模块,可制作全景图像,包含如下部分:   (1)拼接流水线;   (2)特点寻找和匹配图像;   (3)估计旋转;   (4)自动校准;   (5)图片歪斜;   (6)接缝估测;   (7)曝光补偿;   (8)图片混合。 16、superres模块   SuperResolution,超分辨率技术的相关功能模块,用于增强图像的分辨率。 17、ts模块   opencv测试相关代码,不用去关心。 18、video模块   视频分析模块,该模块包括运动估计,背景分离,对象跟踪、背景提取、光流跟踪、卡尔曼滤波等内容,做视频监控的读者会经常使用这个模块。 19、Videostab模块   Video stabilization,视频稳定相关的组件,用于解决相机移动时拍摄的视频不够稳定的问题。