- 了解OpenCV的基本框架,有助于我们对OpenCV产生一个全面的认识。本文将从OpenCV的安装目录来介绍,使用的版本为Window系统上的OpenCV 3.3.0。
- 首先打开OpenCV 3的安装目录,如图1所示,可以看到sources和build文件夹。其中sources文件中存放openCV的源代码,build文件夹中存放着许多头文件和外部接口,方便被引用。
图1
- 进入source文件夹,我们可以看到图2界面。
图2
其中:
• 3rdparty: 包含第三方库,如用视频解码用的 ffmpeg、jpg、png、tiff 等图片的解码库。
• apps: 包含进行 Haar 分类器训练的工具,OpenCV 进行人脸检测便是基于 Haar 分类器。
• cmake: 包含用cmake生成工程项目时的依赖文件。
• data: 包含 OpenCV 库及范例中用到的资源文件。
• doc: 包含生成文档所需的源文件及辅助脚本。
• include: 包含入口头文件。OpenCV子文件夹中是C语言风格的API。OpenCV 2 子文件夹中只有一个 opencv.hpp 文件,这是 OpenCV 2 及 OpenCV 3 推荐使用的头文件
• modules:包含OpenCV中各模块组件的源代码。
• platforms: 包含交叉编译所需的工具链及额外的代码,交叉编译指的是在一个操作系统中编译供另一个系统使用的文件。
• samples:包含算法用法示例demo程序。 - build文件夹中包含了配置openCV环境需链接的文件。进入build文件夹,可以看到图3界面。可以看到它提供了Java、python的接口,x64文件夹里是Visual Studio的接口。
图3
- 进入build/include文件夹,可以看到里面只有opencv和opencv2两个子文件夹,其中opencv里包含旧版模块组件的头文件,如图4所示;opencv2里包含新版模块组件的头文件,如图5所示,我们重点关注opencv2里的文件。
图4
图5
对图5中各模块组件的解释如下:
• calib 3d:Calibration(校准)和3D的缩写组合,包含相机校准和三维重建相关内容。
• core:核心功能模块:Opencv基本数据结构,动态数据结构,绘图函数,数组操作,辅助功能及系统函数和宏,与opengL的互操作。
• dnn:深度学习模块。
• features2d:是2D功能框架:特征检测和描述;特征检测器;描述符提取器;描述符匹配器;关键点绘制函数和匹配功能绘制函数。
• flann:Fast Library for Approximate Nearest Neighbors,高维的近似近邻快速搜索算法库。
• highgui:高层GUI图形用户界面,包括媒体的输入输出、视频捕捉、图像和视频的编解码、图形交互界面的接口等。
• imgproc:image 和 process这两个单词的缩写组合,图像处理模块。线性和非线性的图像滤波,图像的几何变换,其他图像转换,直方图相关,结构分析和形状描述,运动分析和对象跟踪,特征检测,目标检测等。
• ml:机器学习模块,基本上是统计模型和分类算法:统计模型,一般贝叶斯分类,K-近邻,支持向量机,决策树,提升,梯度提高树,随机树,超随机树,神经网络等。
• objdetect:目标检测模块,包含Cascade Classification 和 Latent SVN这两部分。
• photo:Computational Photography,包含图像修复和图像去噪两部分。
• shape:形状匹配及距离计算。
• stitching:图像拼接模块:拼接流水线,特点寻找和匹配图像,估计旋转,自动校准,图片歪斜,接缝估测,曝光补偿,图片混合。
• superres:超分辨率技术的相关功能模块。
• video:视频分析组件,该模块包括运动估计,背景分离,对象跟踪。
• videoio:从视频文件,图像序列或相机视频捕获类。
• videostab:视频稳定相关的组件。
OpenCV 3基本框架介绍
最新推荐文章于 2022-02-22 09:32:22 发布