OpenCV从2.2开始后,被划分成多个模块.这些模块编译成库文件后,位于lib
文件夹下.
模块 | 功能 |
---|---|
opencv_core | 定义了被所有其他模块和基本数据结构(包括重要的多维数组Mat)使用的基本函数.包含核心功能,尤其是底层数据结构和算法函数 |
opencv_imgproc | 一些图像处理函数,包括滤波(线性的和非线性的),几何变换,颜色空间变换,直方图等 |
opencv_highgui | 提供简单的用户接口功能.包含读写图像及视频的函数,以及操作图形用户界面函数 |
opencv_imgcodecs | 一个用于读写图像的易用接口 |
opencv_feature2d | 用于特征检测(角点对象和平面对象), 特征描述,特征匹配 等的一些函数.包含兴趣点检测子,描述子以及兴趣点匹配框架 |
opencv_calib3d | 摄像机校准,包含相机标定,双目几何故事以及立体视觉函数 |
opencv_photo | 包含计算摄影学, 涉及修复/去噪/高动态范围(HDR)图像等 |
opencv_stitching | 用于图像拼接 |
opencv_videoio | 对于视频捕获和视频编码器是一个易用的接口 |
opencv_videostab | 视频稳定 |
opencv_video | 提供了视频分析的功能(运动估计,背景提取以及对象跟踪) |
opencv_objdetect | 用于对象检测和预定义检测器实例(例如,人脸/眼睛/微笑/人/车等)的一些函数 |
opencv_ml | 机器学习 |
opencv_flann | 聚类和搜索,计算几何 |
opencv_shape | 形状距离和匹配 |
opencv_superres | 超分辨率 |
opencv_contrib | 第三方代码 |
opencv_legacy | 废弃的代码 |
opencv_gpu | GPU加速过的代码 |
这些模块都有一个单独的头文件(位于include
文件夹).典型的OpenCV C++代码将包含所需的模块,声明方式如下
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>