在最新的OpenCV – 4.11.0版本中,进入到build\include\opencv2文件夹,我们会看到如下一些文件夹和文件。下面将对这些文件夹进行说明。

include文件夹分析
文件夹/文件 | 功能说明 | 典型头文件示例 |
---|---|---|
core/ | 基础数据结构(矩阵 Mat 、向量等)和基本操作(算术、IO、并行化)。 | core.hpp , mat.hpp |
imgproc/ | 图像处理(滤波、几何变换、色彩空间转换、边缘检测等)。 | imgproc.hpp , filter.hpp |
imgcodecs/ | 图像读写(支持JPEG/PNG/TIFF等格式)。 | imgcodecs.hpp |
videoio/ | 视频捕获与保存(摄像头、视频文件)。 | videoio.hpp , videoio_c.h |
highgui/ | 图形界面(显示图像、创建窗口、鼠标事件)。 | highgui.hpp |
dnn/ | 深度学习模块(加载TensorFlow/PyTorch/ONNX模型,推理)。 | dnn.hpp , dnn/all_layers.hpp |
calib3d/ | 相机标定、立体视觉、3D重建。 | calib3d.hpp , stereo.hpp |
features2d/ | 特征检测与匹配(SIFT、ORB、BFMatcher等)。 | features2d.hpp , xfeatures2d.hpp |
objdetect/ | 目标检测(人脸检测、二维码识别、HOG+SVM等)。 | objdetect.hpp , qr_code.hpp |
ml/ | 机器学习(SVM、决策树、KNN等传统算法)。 | ml.hpp |
gapi/ | 图像处理流水线框架(高性能异构计算)。 | 需单独编译 opencv_gapi 模块。 |
stitching/ | 图像拼接(全景图生成)。 | 依赖 features2d 。 |
photo/ | 计算摄影(去噪、HDR、图像修复)。 | photo.hpp |
video/ | 视频分析(光流、背景减除、目标跟踪)。 | video/tracking.hpp |
ximgproc/ | 扩展图像处理(边缘感知滤波、结构化森林)。 | 需额外安装 opencv_contrib 。 |
xfeatures2d/ | 额外特征检测(SURF、SIFT等专利算法)。 | 需启用 OPENCV_ENABLE_NONFREE 。 |
flann/ | 快速近似最近邻搜索库(Fast Library for Approximate Nearest Neighbors, FLANN) 的实现部分。 |
除了上述文件夹,还有一个重要的文件叫opencv_modules.hpp,该文件记录了哪些模块被编译进当前版本。用记事本打开,其内容如下:
/*
* ** File generated automatically, do not modify **
*
* This file defines the list of modules available in current build configuration
*
*
*/
// This definition means that OpenCV is built with enabled non-free code.
// For example, patented algorithms for non-profit/non-commercial use only.
/* #undef OPENCV_ENABLE_NONFREE */
#define HAVE_OPENCV_CALIB3D
#define HAVE_OPENCV_CORE
#define HAVE_OPENCV_DNN
#define HAVE_OPENCV_FEATURES2D
#define HAVE_OPENCV_FLANN
#define HAVE_OPENCV_GAPI
#define HAVE_OPENCV_HIGHGUI
#define HAVE_OPENCV_IMGCODECS
#define HAVE_OPENCV_IMGPROC
#define HAVE_OPENCV_ML
#define HAVE_OPENCV_OBJDETECT
#define HAVE_OPENCV_PHOTO
#define HAVE_OPENCV_STITCHING
#define HAVE_OPENCV_VIDEO
#define HAVE_OPENCV_VIDEOIO
#define HAVE_OPENCV_WORLD
另外还有一些配置文件与宏定义也需要了解一下。
opencv.hpp
主头文件,包含所有核心模块(方便一次性引用)。cvdef.h
基础宏定义(版本号、编译器兼容性、硬件指令集开关)。config.h
编译时生成的配置(如是否启用CUDA、OpenCL等)。version.hpp
版本信息(CV_VERSION_MAJOR
,CV_VERSION_MINOR
)。
C++包含头文件使用示例
#include <opencv2/opencv.hpp> // 包含所有核心模块
#include <opencv2/dnn.hpp> // 单独引入深度学习模块
#include <opencv2/xfeatures2d/nonfree.hpp> // 使用SIFT/SURF(需非免费许可)
——重庆教主 2025年5月6日
若文章对您有帮助,可以激励一下我哦,祝您平安幸福!
微信 | 支付宝 |
---|---|
![]() |
![]() |