Tech-Eva



OpenCV


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