Starting your journey with Image Processing

Ever wondered about the word ‘Image Processing’? Does it interest you? Do you wonder how some modern technology is able to develop something so accurate as to find tumours from images, or how Facebook lets you tag you and others by recognising people from their uploads? Well, the list goes on and no wonders why the future will be largely based on what we popularly call Artificial Intelligence and Machine Learning. Well, Image Processing and Computer Vision are nearly related to these. Does it sound too much for you to learn, well don’t worry I have made a perfect collection of steps and tutorials that will help even a beginner to be a pro in Image Processing (Disclaimer: The links and tutorials mentioned in this blog post aren’t in any way owned/written by the author but the main motive of this blog post is guide the readers through various steps and choose knowledge resources that best suit according to the authors’ personal choices in accordance with the authors’ own knowledge. They represent the authors’ personal suggestions as she found them useful. There is no liability of the author to own any pros/cons of any changes, issues or any legal problems related to the mentioned posts).
In this blog, I will discuss various steps that will help you to learn Image Processing with ease.  So let’s start!
Firstly, what is meant by the word ‘Image Processing’? It means what it sounds; it is the use of various computer algorithms to process/analyse images. Images in their digital format can be viewed as nothing but a collection of pixels and pixels are nothing but a square filled with a colour (Note: This definition is solely for the purpose of understanding and not to be considered as the actual definition). So, a pixel can be considered similar to a square coloured piece which when joined together in large number in a continuous manner in 2D forms an image. Each pixel has fixed dimensions and an image hence consists of a large number of these fixed dimension pixels lined up together in rows and columns to form an image. The number of pixels in each row and column hence defines the size of that image. For example, a 1000X500 image means that it has about 1000 pixels in each column and about 500 pixels in each row. Also, the greater the number of pixels per unit area, higher will be the quality of the image. Each image of dimensions aXb, hence, can be represented by a matrix whose entries represent the value/code of the colour contained by the pixel at that index.
So, if you want to start learning with image processing, the first thing is to introduce yourself to the basic characteristics and properties of digital images and how these are represented inside a computer. I found the following easy to understand- https://www.tutorialspoint.com/dip/
This contains useful information on pixels, image basics and image processing algorithms. This also contains some advanced concepts but I recommend exploring only first few basic lessons for now.    
Now, having explored the concepts about digital images and how they are represented in computers, it’s time to switch to the next step. Now, most of the Image processing beginners opt for one of the two softwares/languages to work upon for image processing: OpenCV(Python) & MALTAB. MATLAB is what I started with when I started learning Image Processing. MALTAB is one of the best numerical computing environments that support an entire toolbox on Image Processing. It is relatively easier to learn with MALTAB as it supports a dynamic help system and a large number of built-in tutorials and examples. For a starter, it can really help to learn with MALTAB. I personally recommend opting for MALTAB for initial learning phase. Here’s a link if you wish to explore MALTAB : https://www.mathworks.com/products/matlab.html
Let me tell you if you go through all the tutorials in image processing section you can even start building up your own projects! Once you have gathered enough from these tutorials I recommend making a mini project. This would help you a lotJ. You can browse for various related projects on the net, some of them have code given but I highly recommend making your own code. Also, there are various websites/public forums that will help you to resolve any doubts/errors in your code. MATLAB has it's own forum too that really helps. Others are:
https://in.mathworks.com/matlabcentral/answers/index/?s_tid=gn_mlc_an
https://stackoverflow.com/
Now, coming to OpenCV; it is generally preferred over MATLAB as a tool for image processing and Computer Vision. This is widely due to the fact that it provides more flexibility and also allows using various features of Python and associated libraries like Numpy for numerical computation. But working with OpenCV requires first the knowledge about programming languages like Python. So before you start with OpenCV, I recommend learning Python3 basics. You can either learn from below free education services and/or opt for courseware on Python3.
Resources for Python:
After gaining insights on Python let’s move to OpenCV. I found this blog extremely useful and arranged. Following through all the tutorials you will be performing some tasks with the same aim as you would have done in MALTAB. This will allow you to make a better comparison. Also, this will introduce to image processing using Python too. Link: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
 Having gathered all you need to start your very own first project in Computer Vision we will now see how to implement them in real life scenarios. For learning applications of Image processing and Computer Vision, I recommend going through these:
I hope this will help you to get to know about Image Processing and Computer Vision and you excel in your learning journeyJ.

Image Source : https://dribbble.com/shots/4859099-Face-Recognition 

Comments

Popular posts from this blog

The Next Scholarship on the List

Earning your next Internship

Women Who Code Delhi Mentorship Program: Week 1