OpenCV (Open Source Computer Vision Library) is an open-source BSD-licensed library that includes several hundreds of computer vision algorithms. The document describes the so-called OpenCV 2.x API, which is essentially a C++ API, as opposite to the C-based OpenCV 1.x API. The latter is described in opencv1x.pdf.
OpenCV has a modular structure , which means that the package includes several shared or static libraries.The following modules are available:
core - a compact module defining basic data structures, including the dense multi-dimensional array Mat and basic functions used by all other modules.
imgproc - an image processing module that includes linear and non-linear image filtering , geometrical image transformations (resize, affine and perspective warping , generic table -based remapping), color space conversion, higtograms, and so on.
video - a video analysis module that includes motion estimation , background subtraction , and object tracking algorithms.
calib3d -basic multiple - view geometry algorithms, single and stereo camera calibration , object pose estimation , stereo correspondenc algorithms, and elements of 3D reconstruction.
features2d - salient feature detectors, desciptors , and descriptor matchers.
objdetect -detection of objects and instances of the predefined classes (for example, faces , eyes, mugs, people , cars, and so on)
highgui -an easy-to use interface to video capturing , image and video codecs, as well as simple UI capabilities.
gpu - GPU - accelerated algorithms from defferent OpenCV modules.
... some other helper modules, such as FLANN and Google test wrappers, Python bingings , and others.
The further chapters of the document describe functionality of each module. But first , make sure to get familiar with the common API concepts used thoroughly in the library.