OpenCV

OpenCV is the huge open-source library for the computer vision, machine learning, and image processing and now it plays a major role in real-time operation which is very important in today’s systems. By using it, one can process images and videos to identify objects, faces, or even handwriting of a human. When it integrated with various libraries, such as NumPy, python is capable of processing the OpenCV array structure for analysis. To Identify image pattern and its various features we use vector space and perform mathematical operations on these features. 

The first OpenCV version was 1.0. OpenCV is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. When OpenCV was designed the main focus was real-time applications for computational efficiency. All things are written in optimized C/C++ to take advantage of multi-core processing. 

Applications of OpenCV: There are lots of applications which are solved using OpenCV, some of them are listed below 

  • face recognition
  • Automated inspection and surveillance
  • number of people – count (foot traffic in a mall, etc)
  • Vehicle counting on highways along with their speeds
  • Interactive art installations
  • Anamoly (defect) detection in the manufacturing process (the odd defective products)
  • Street view image stitching
  • Video/image search and retrieval
  • Robot and driver-less car navigation and control
  • object recognition
  • Medical image analysis
  • Movies – 3D structure from motion
  • TV Channels advertisement recognition

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)

Image-Processing

Image processing is a method to perform some operations on an image, in order to get an enhanced image and or to extract some useful information from it. 

If we talk about the basic definition of image processing then “Image processing is the analysis and manipulation of a digitized image, especially in order to improve its quality”. 

Digital-Image : 

An image may be defined as a two-dimensional function f(x, y), where x and y are spatial(plane) coordinates, and the amplitude of fat any pair of coordinates (x, y) is called the intensity or grey level of the image at that point. 

In another word An image is nothing more than a two-dimensional matrix (3-D in case of coloured images) which is defined by the mathematical function f(x, y) at any point is giving the pixel value at that point of an image, the pixel value describes how bright that pixel is, and what colour it should be. 

Image processing is basically signal processing in which input is an image and output is image or characteristics according to requirement associated with that image. 

Image processing basically includes the following three steps: 

  1. Importing the image
  2. Analysing and manipulating the image
  3. Output in which result can be altered image or report that is based on image analysis

Information Source – https://www.geeksforgeeks.org/opencv-overview/