Hi There!
Welcome to my new course OpenCV Fundamentals using Python. This is the first course from my Computer Vision series.
Let us see what are the interesting topics 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 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 greyscale 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 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.
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 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 the histograms. We will plot a histogram and will learn how we can analyze 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 colors 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 have 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 classroom. Happy learning and have a great time.