Skip to content

OpenCV Technology and Computer Vision

OpenCV, Open-source Computer Vision library, is a widely adopted and powerful library that implements many common image and vision processing techniques. It is a highly optimized with focus on real-time applications.

A Brief History of OpenCV

OpenCV was initially an Intel research initiative to advise CPU-intensive applications. It was officially launched in 1999.

In the year 2006, its first major version, OpenCV 1.0 was released. In October 2009, the second major version, OpenCV 2 was released. In August 2012, OpenCV was taken by a nonprofit organization OpenCV.org.

Computer Vision

Computer Vision can be defined as a discipline that explains how to reconstruct, interrupt, and understand a 3D scene from its 2D images, in terms of the properties of the structure present in the scene. It deals with modeling and replicating human vision using computer software and hardware.

Computer Vision overlaps significantly with the following fields:

  • Image Processing − It focuses on image manipulation.
  • Pattern Recognition − It explains various techniques to classify patterns.
  • Photogrammetry − It is concerned with obtaining accurate measurements from images.

Computer Vision Vs Image Processing

Image processing deals with image-to-image transformation. The input and output of image processing are both images. Computer vision is the construction of explicit, meaningful descriptions of physical objects from their image. The output of computer vision is a description or an interpretation of structures in 3D scene. Applications of Computer Vision include the following

Robotics Applications:

  • Localization − Determine robot location automatically
  • Navigation
  • Obstacles avoidance
  • Assembly (peg-in-hole, welding, painting)
  • Manipulation (e.g. PUMA robot manipulator)
  • Human Robot Interaction (HRI) − Intelligent robotics to interact with and serve people

Medicine Applications:

  • Classification and detection (e.g. lesion or cells classification and tumor detection)
  • 2D/3D segmentation
  • 3D human organ reconstruction (MRI or ultrasound)
  • Vision-guided robotics surgery

Industrial Automation Applications:

  • Industrial inspection (defect detection)
  • Assembly
  • Barcode and package label reading
  • Object sorting
  • Document understanding (e.g. OCR)

Security Applications:

  • Biometrics (iris, finger print, face recognition)
  • Surveillance − Detecting certain suspicious activities or behaviors

Transportation Applications:

  • Autonomous vehicles
  • Safety, e.g., driver vigilance monitoring

OpenCV modules

Core Functionality This module covers the basic data structures such as Scalar, Point, Range, etc., that are used to build OpenCV applications. In addition to these, it also includes the multidimensional array Mat, which is used to store the images.

Image Processing - This module covers various image processing operations such as image filtering, geometrical image transformations, color space conversion, histograms, etc.

Video - This module covers the video analysis concepts such as motion estimation, background subtraction, and object tracking.

Video I/O - This module explains the video capturing and video codecs using OpenCV library.

calib3d - This module includes algorithms regarding basic multiple-view geometry algorithms, single and stereo camera calibration, object pose estimation, stereo correspondence and elements of 3D reconstruction.

features2d - This module includes the concepts of feature detection and description.

Objdetect - This module includes the detection of objects and instances of the predefined classes such as faces, eyes, mugs, people, cars, etc.

Highgui - This is an easy-to-use interface with simple UI capabilities.