Skip to content

Latest commit

 

History

History
132 lines (87 loc) · 5.44 KB

File metadata and controls

132 lines (87 loc) · 5.44 KB

Note: Credits are given to Official OpenCV samples along with other articles linked below

Introduction

Today, image processing and computer vision are literally everywhere. From Space Missions to Self driving cars, from Snapchat to CamScanner in your phone. Anything with a light sensor requires the use of these two.

Image Processing and Computer Vision

Generally speaking, image processing is all about transforming (processing) the input image file. Typically, it’s done with the usage of specific software, to name just Adobe Photoshop or GIMP. Some of these transformations are done manually (by the graphic, for instance, adding new layers) or automatically (by the built-in algorithm, for example, sharpening).

It is a fundamental skill useful for any field that deals with visual inputs.

One of the most outstanding examples is medicine. Image processing in medicine is used in order to enhance the medical image’s quality and perceptibility. As a result of this image enhancement process, a physician can make a quicker and more accurate diagnosis, simply put, because they see a more clear picture.

On the other hand, Computer vision works entirely differently. Here, nothing happens to the file itself. This is due to the goal, which is to interpret the image and its contents. One of the most significant usages of computer vision is in the motor industry. Computer vision is used here as an assistant for the driver that scans the vehicle’s surroundings and analyzes them for potential threats, obstacles, and other relevant situations . ref

What's good about Image Processing?

  • Vibrant communities and lots of projects coming up
  • Visuals advantage: small efforts big impacts
  • Initial learning curve is not steep :)
  • Real time advantage: Easy to demo basic prototypes

Some Primers

We'll get to know some of the basics starting from:

  • Pixels
  • Color spaces
  • Image Transforms

Then we'll shortly visit:

  • Morphology
  • Thresholding
  • Histograms
  • and more

Let's get Practical!

What's in the store?

  • Intro on Google Colab

Google Colaboratory

  • Some basic transforms

    • Color Isolation - Pop effect
    • Color functions
  • Finding Waldo using Template Matching

    What is template matching?

    Template matching is a process where we take the input image and try to slide the target image over the input. This input image is then matched pixel-wise with the target and the closest match will be highlighted.

    Refs Multiscale Template matching Sliding window Waldo ref

  • Cam scanner

    • Importance of morphology and thresholding
    • Image Warping
  • OMRChecker

Future directions

  • Speed and Efficiency: do it in C++
  • The Classics
    • OCR
    • Object Detection
    • Object Identification
  • New ways of inputs
    • like Kinect
    • Smart Home & IOT
  • It's a step towards Computer Vision and Machine Learning
    • GANs
    • ConvNets
    • Motion Magnification
    • PoseNets, Deepfakes and what not

Areas to look into

Resources

Adrian Rosebrock

Satya Malik

Official Docs

Sentdex's Video Tutorials

More examples

Fun stuff to check out

Apps to Try out

  • Google Lens
  • Depth Labs
  • Arts & Culture

More interesting projects