We all are more or less familiar with such things like face recognition, motion detection, object identification. Right? These things are really interesting. But do you know how these things work? The answer is Computer Vision.
What is Computer Vision?
Computer vision is a field of artificial intelligence that trains computers to interpret and understand the visual world. It is an interdisciplinary scientific field that deals with how computers can gain high-level understanding from digital images or videos. From the perspective of engineering, it seeks to understand and automate tasks that the human visual system can do.
How does a computer read an image?
The computer reads any image as a range of values between 0 and 255.For any color image, there are 3 primary channels – Red, green and blue. How it works is pretty simple. A matrix is formed for every primary color and later these matrices combine to provide a Pixel value for the individual R, G, B colors. A 'pixel' (short for 'picture element') is a tiny square of color. Lots of these pixels together can form a digital image. Each pixel has a specific number and this number tells the computer what color the pixel sholid be. The process of digitization takes an image and turns it into a set of pixels.
What is OpenCV?
OpenCV (Open Source Computer Vision Library): is a library of programming functions mainly aimed at real-time computer vision.The library is cross-platform and free for use under the open-source BSD license.
Programming language: OpenCV supports a wide variety of programming languages such as C++, Python, Java etc. Support for mlitiple platforms including Windows, Linux, and MacOS.OpenCV Python is nothing but a wrapper class for the original C++ library to be used with Python. Using this, all of the OpenCV array structures get converted to/from NumPy arrays. This makes it easier to integrate it with other libraries which use NumPy. For example, libraries such as SciPy and Matplotlib.
OS Support: OpenCV runs on the following desktop operating systems: Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD. OpenCV runs on the following mobile operating systems: Android, iOS, Maemo, BlackBerry 10. The user can get official releases from SourceForge or take the latest sources from GitHub. OpenCV uses CMake.
OpenCV's application areas include: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
OpenCV Functionality:
Image/video I/O, processing, display (core, imgproc, highgui)
Object/feature detection (objdetect, features2d, nonfree)
Geometry-based monocular or stereo computer vision (calib3d, stitching, videostab)
Computational photography (photo, video, superres)
Machine learning & clustering (ml, flann)
CUDA acceleration (gpu)
Sources / References [If Any] : Internet