Note: Credits are given to Official OpenCV samples along with other articles linked below
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.
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
- 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
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
What's in the store?
- Intro on Google Colab
-
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.
-
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
- Robotics | Self driving cars | Automations in Manufacturing |
- AR, VR
- More from here:
Adrian Rosebrock
Satya Malik
- https://www.learnopencv.com/
- The Encyclopedia of Tutorials : https://github.com/spmallick/learnopencv
Official Docs
Sentdex's Video Tutorials
- https://www.youtube.com/watch?v=Z78zbnLlPUA&list=PLQVvvaa0QuDdttJXlLtAJxJetJcqmqlQq&index=1
- https://pythonprogramming.net/search/?q=opencv
More examples
Fun stuff to check out
- https://www.learnopencv.com/Funny-Mirrors-Using-OpenCV/
- https://pythonprogramming.net/open-cv-basics-python-plays-gta-v/
Apps to Try out
- Google Lens
- Depth Labs
- Arts & Culture
More interesting projects