OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision, developed by Intel, and now supported by Willow Garage and Itseez. It was originally built to unite the distributed efforts of the vision community and to provide a free and open infrastructure for performance optimization. OpenCV is released under a BSD license and is free for both academic and commercial use.
Main objective of OpenCV is providing real-time computer vision and real-time image processing. This library is written in optimized C/C++, but has C++, C, Python, Java and MATLAB/OCTAVE (as of version 2.5) interfaces. To encourage adoption by a wider audience wrappers in other languages have been added, including C#, Ch, and Ruby. OpenCV is cross-platform and supports Windows, Linux, Mac OS, iOS, and Android.
OpenCV uses multi-core processing and focuses on computational efficiency and real-time applications. Among OpenCV's application areas are:
- 2D and 3D feature toolkits;
- Motion understanding and tracking;
- Facial and Gesture recognition system;
- Human–computer interaction (HCI);
- Object identification;
- Mobile robotics;
- Egomotion estimation;
- Segmentation and Recognition;
- Augmented reality;
- Structure from motion (SFM).
OpenCV includes several shared and static libraries. One of them is 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, histograms, etc. A video analysis module features motion estimation, background subtraction, and object tracking algorithms.
calib3d module provides basic multiple-view geometry algorithms, single and stereo camera calibration, object pose estimation, stereo correspondence algorithms, and elements of 3D reconstruction. Also OpenCV contains a statistical machine learning library that features boosting (meta-algorithm), decision tree learning, artificial neural networks, support vector machine (SVM), etc.
Quintagroup used OpenCV as underlying tech for automated testing specifically for visual recognition. OpenCV was used to determine whether an element is present in the image and if this element corresponds to the programmed/written/uploaded one ( e.g. colors, forms). For instance, automated tests in this way can determine whether line spacing is correct and corresponds to the preset font. Another example of usage is testing the colors of text or background to check the proper page display. OpenCV is irreplaceable when we test display of web pages and appropriate theming for devices with different resolutions. Also we used OpenCV in combination with Xaut to obtain coordinates of certain object or element for further actions. For more information and implementation details visit OpenCV website or contact Quitagroup.