, an acronym for Open Computer Vision, is a complex piece of software which offers developers a series of algorithms in open source form, so they can integrate advanced capabilities into their software and save the time otherwise required for doing everything themselves.
The package comes with interfaces for numerous platforms aside from Windows, supporting several different programming languages, namely C++, C,
. Its main focus is on real-time application, being developed in such a way that is can successfully benefit of multi-core processing capabilities of a system.
OpenCV comes with several different modules, each serving different needs, yet complementing each other. As such, the ‘Core’ provides users with basic data structures and functions, while the ‘Imgproc’ component functions as an image processing method, comprising image filtering (both linear and non-linear), as well as other image editing options (resizing, warping, remapping), or color space conversion.
In the ‘Video’ module, users can find several powerful algorithms aimed for motion estimation, object tracking and background subtraction operations. The ‘Calib3d’ component comprises multiple-view geometry algorithms, offering several capabilities, such as camera calibration or 3D reconstruction.
The ‘Features2d’ module includes descriptors and descriptor matchers, as well as salient feature detection tools. With the ‘Objdetect’ library, users can find various objects from predefined classes (for instance cars, faces, eyes, etc).
OpenCV also includes ‘Highgui’, a module aimed to work as a UI for video capturing, image and video codecs. The ‘GPU’ module contains algorithms meant for GPU-acceleration tasks. Also, certain helper libraries can be found, namely FLANN or Google test wrappers.