Image processing with OpenCV

Discover OpenCV, free software reference for image processing. With this library, you have the ability to perform simple operations on images (contrast, rotations, etc.) and video (motion estimation) but also complex operations such as detection of geometric shapes, objects and faces, the reconstruction of 3D scenes, and many other functions.

Training objective

Knowing how to use OpenCV for image processing and understand the underlying concepts and algorithms. To do this, training will alternate theoretical presentations and practical work where participants can practice immediately algorithms on concrete example.

Duration of training

Three days

Date and place of training

Place: Toulouse (France). Training session also possible within your company in Europe (consult us for additionnal travel fees).

Date: contact us.

Registration

Registration form available here.

Contents


I - INTRODUCTION TO OPENCV
During this first part, you will be able to familiarize yourself with the essential functions of OpenCV for image or video processing.

  • Basic types (images / matrix, points, rectangles)
  • Inputs / outputs (reading and writing image and video files)
  • User interface (displaying images and videos)
  • Color spaces (BGR, HSV, etc.)
  • Elementary operations on images (extracting regions of interest, image normalization, resizing, thresholding, etc.)
  • Drawing functions (circles, text, lines, etc.)
  • Practical work: using the Mat class, objects detection according to their hue, using region of interest and masks

II - IMAGE PROCESSING
During this second part, we will see how to use the classical image processing techniques with OpenCV.

  • Filtering (notion of separable filter, moving average filters, gaussian filters, bilateral filters, median filters, etc.)
  • Derivation (computation of gradient / Laplacian)
  • Morphological operations (dilation, erosion) and applications (simple segmentation, ...)
  • Contours detection
  • Geometrical shapes detection (Hough transform for lines / circles)

III - OBJECTS DETECTION
This part will be dedicated to some modern techniques for object detection: (cascad based detectors, and interest point localization and matching).

  • Generic objects detection (cascad detector / Viola-Jones algorithm), face detection
  • Specific elements matching (descriptors computation: SIFT, SURF, ORB, etc.), application example: realization of panoramics
  • Images classification (BOW algorithm)

IV - VIDEO PROCESSING
We will see in this part some classical techniques for video stream processing, so as for instance to detect foreground objects, or computing their speed (optical flow).

  • Background substraction
  • Segmentation and tracking of moving objects
  • Optical flow computation (Luca-Kanade, simple flow, etc.)

V - 3D Vision
In this part, we will see how to correct easily the camera distortions with OpenCV, and how to make the link between the 2 representation (screen) and the 3d world.

  • Camera modelisation (pinhole) and matrix representation
  • Automatic calibration of camera
  • Homography computation
  • Stereo vision

VI - SOME OTHER FUNCTIONS
A last, we will see an overview of some other usefull functions included in OpenCV.

  • Preview of OpenCV 3.0 functions
  • Automatic learning functions
  • Specialized modules: resolution enhancement (from the optical flow), panorama computing, photography processing
  • Computation acceleration with the GPU (transparent API)