Since version 2.2, the OpenCV library is divided into several modules. These modules are built in library fles located in the lib directory. They are:
1 The opencv_core module that contains the core functionalities of the library, in particular, the basic data structures and arithmetic functions.
2 The opencv_imgproc module that contains the main image processing functions.
3 The opencv_highgui module that contains the image and video reading and writing functions, along with other user interface functions.
4 The opencv_features2d module that contains the feature point detectors and descriptors and the feature point matching framework.
5 The opencv_calib3d module that contains the camera calibration, two-view geometry estimation, and stereo functions.
6 The opencv_video module that contains the motion estimation, feature tracking, and foreground extraction functions and classes.
7 The opencv_objdetect module containing the object detection functions such as the face and people detectors.
The library also includes other utility modules containing machine learning functions (opencv_ml), computational geometry algorithms (opencv_flann), contributed code (opencv_contrib), obsolete code (opencv_legacy), and GPU accelerated code (opencv_gpu).
All of these modules have a header fle associated with them (located in include directory).
Typical OpenCV C++ code will therefore start by including the required modules. For example
(and this is the suggested declaration style):
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
If you see OpenCV code starting with:
#include "cv.h"
it is because it uses the old style, before the library was restructured into modules.
翻译:
opencv自从2.2版本起,将库分成很多模块,这些模块编译成库,放在opencv的lib文件夹下。他们分别是:
1. opencv_core 模块 它包含库的核心函数,实际上它包含基本的数据结构和算术函数
2. opencv_imgproc 模块 它包含主要的图像处理函数
3. The opencv_highgui 模块,它包含图像和视频的读写函数以及用户交互函数
4. opencv_features2d 模块,它包含特征点的检测、描述以及匹配的框架
5. opencv_calib3d 模块,它包含摄像头的校准,双目几何估计和立体函数
6. opencv_video 模块,它包含运动目标估计,特征跟踪和前景提取的函数和类
7. opencv_objdetect 模块,它包含目标检测函数如人脸检测,和行人检测
opencv库还包含其他单元模块如机器学习模块 (opencv_ml), 计算几何算法模块(opencv_flann), 已贡献代码模块(opencv_contrib), 过时的代码模块opencv_legacy以及图形加速模块(opencv_gpu).
所有的模块都有一个与之关联的头文件(在include路径下)
典型的OPENCV c++代码通常以包含这些必须的模块开始,如:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>