Welcome to my new course OpenCV Fundamentals using Python. This is the first course from my Computer Vision series.
Lets see what are the interesting topics included in this course. At first we will have an overview about 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 really 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, color and grey scale channels, color 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 grey scale 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 color and also get the properties of the image.
Hope you know that there are 3 color channels in a color image and a single one in greyscale image. We will try to separate and extract those color channels and later try to merge them back to form the original image.
Color spaces, unlike the color channels, is the way how colors are organized in an image. In the next session, we will explore the popular color spaces and will do exercises which switches an image between different color 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 includes 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 image and display only the region of interest.
And after that we will try Image Smoothing techniques. At first we will use our own 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 preprocessing 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 color 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 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 other. We will explore how we can use opencv methods to generate image pyramids.
For us humans, its an easy task to find an object in a scene and find the edges of it. For computers its 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 colors should be found out. We will use 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. I will include the link to download them in the last session or the resource section of this course. You are free to use the code in your projects with no questions asked.
So that's all for now, see you soon in the class room. Happy learning and have a great time.