OpenCV is a library of programming functions designed to solve Computer Vision problems in real-time. It is a cross-platform and free for use, which allows businesses to utilize and modify the code. OpenCV supports the deep learning frameworks like TensorFlow, Torch/PyTorch and Caffe. It is written in C++ and supports Windows, Linux, Android and Mac OS.
The OpenCV library has more than 2,500 optimized algorithms, which includes a vast set of both classic and state-of-the-art Computer Vision and machine learning algorithms. These algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos, track camera movements, track moving objects, extract 3D models of objects, produce 3D point clouds from stereo cameras, stitch images together to produce a high resolution image of an entire scene, find similar images from an image database, remove red eyes from images taken using flash, follow eye movements, recognize scenery and establish markers to overlay it with augmented reality, etc. OpenCV has a large user community and an estimated number of downloads exceeding 18 million. The library is used extensively in companies, research groups and by governmental bodies.
Languages and OS supported
OpenCV supports programming languages C++, Android SDK, Java, Python, Matlab/Octave and C. On the other hand, it can be run on Linux, Windows, Android, Mac-OS, FreeBSD, NetBSD and OpenBSD operating systems.
The library has more than 2,500 optimized algorithms, which includes a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms.
The OpenCV library is used by private companies, startups and government organisations. Its deployed uses range from stitching together street-view images, detecting intrusions in surveillance video, helping robots navigate and pick up objects, detection of swimming pool drowning accidents, running interactive art, inspecting labels on products in factories, among others.
• 2D and 3D feature toolkits
• Egomotion estimation
• Facial recognition system
• Gesture recognition
• Human–computer interaction (HCI)
• Mobile robotics
• Motion understanding
• Object identification
• Segmentation and recognition
• Stereopsis stereo vision: depth perception from 2 cameras
• Structure from motion (SFM)
• Motion tracking
• Augmented reality
To support some of the above areas, OpenCV includes a statistical machine learning library that contains Boosting, Decision tree learning, Gradient boosting trees, Expectation-maximization algorithm, k-nearest neighbor algorithm, Naive Bayes classifier, Artificial neural networks, Random forest, Support vector machine (SVM) and Deep neural networks (DNN).