Start your Deep Learning Computer Vision Endeavor with Strong OpenCV Basics in Python
Let’s see what the interesting topics are included in this course. At first, we will have an overview of computer vision and the amazing OpenCV, the open-source computer vision library.
After that, we are ready to proceed with preparing our computer for installing OpenCV and later will proceed with installing OpenCV itself. Then we will try a one-liner code to check if everything is working fine.
When I said this course is for complete beginners, I mean it. Because even-if you are coming from a non-python background, the next few sessions and examples will help you get the basic python programming skill to proceed with the rest of the sessions. The topics include Python assignment, flow-control, functions and data structures.
Now we are all set to proceed with python computer vision exercises. But before that, we need to learn the theory of how a digital image is organized. Concept of pixels, colour and greyscale channels, colour codes etc.
Then we will write our first opencv program in which we will simply load and display an image from our computer, and we will write a greyscale version of this image back to our computer itself.
As you already know the basic building block of a digital image is pixels, we will use the power of OpenCV to manipulate the individual pixels of an image and modify it.
Later in the next session, we will use a similar technique to select a collective area of pixels and manipulate it by trying to change colourand get the properties of the image.
Hope you know that there are 3 colour channels in a colour image and one in the greyscale image. We will try to separate and extract those colour channels and later try to merge them back to form the original image.
Colour spaces, unlike the colour channels, is the way how colours are organized in an image. In the next session, we will explore the popular colour spaces and will do exercises which switches an image between different colour spaces.
In the next session, we will use opencv to create and draw simple geometric shapes like line, rectangle, circle, ellipse, polygon etc into an image canvas. We also will try to insert a text into the canvas.
Then we will try some morphological transformations to our image which includes erosion which erodes the pixels, then dilation which will expand the pixels, opening transformation for white noise removal and closing for black point noise removal. Then gradient transformation and finally the top hat and black hat morphological image transformations.
After that we will try the geometric transformations which include scaling or resizing the image, then translating or place shifting the image, flipping or changing sides, rotating the image by fixing an axis, and cropping the image to extract the region of interest.
In the coming two sessions, we will try the basic arithmetic and logical operations between two images. We will try to do the addition operation and subtraction operation between two images. We will also try the AND, OR, XOR and NOT binary bitwise operations for two images and will check the results obtained.
Later we will go ahead with Image masking, which is a technique of covering the unwanted areas of an image and display only the region of interest.
And after that, we will try Image Smoothing techniques. At first, we will use our filter to do a custom smoothing of image and later built-in filters using algorithms like Gaussian Smoothing, average smoothing, Median and finally the bilateral smoothing.
Then we will see an advanced technique called thresholding which is very useful in pre-processing and preparing the image for computer vision algorithms. We will do exercises to demonstrate simple thresholding, Otsu thresholding and adaptive thresholding.
Then we will check an interesting image colour intensity plotting technique called as the histograms. We will plot a histogram and will learn how we can analyse the histogram to predict the nature of the image.
By using this histogram and adjusting the values based on it, we can enhance the contrast of dull-looking images. We will explore the technique called histogram equalization.
Image pyramids are different sized images generated and stacked one on top of others. We will explore how we can use opencv methods to generate image pyramids.
For us humans, it’s an easy task to find an object in a scene and find the edges of it. For computers,it’s not that easy. We will explore the opencv functions which enable us to find the edges using the Canny edge detection.
As we know to a computer, an image is just a collection of numbers. To find the edges, gradients or the pattern of intensity change of colours should be found out. We will use the gradient detection function of OpenCV to do that.
Then finally we will draw contours along the different objects in an image with the help of the above-mentioned techniques and try to count the number of objects available in the scene.
That's all about the basics. The code and the images used in this course has been uploaded and shared in a folder.