This is the question I was primarily asked when I first started exploring just exactly what Image Processing can offer. As time passed, I soon found the now seemingly obvious answer. Although the name, Image Processing, itself suggests manipulating an image for either aesthetic pleasure or requirement, Image Processing actually provides a gateway for the next revolution in engineering. As more and more people become accustomed to having human tasks being done by machines, image processing becomes crucial in training and programming these machines to flourish. Image processing not only provides the framework for Computer Vision but also gives way to Industrial Automation, Artificial Intelligence and much more. OpenCV is used for many Image and Video processing applications such as Facial Recognition, Object Detection, Photo Editing, Robotic Vision, Character Recognition and so much more!
When I first started Image Processing, I was blown back at the abundance of information available online. One of the first steps I needed to take was to decide between the leading Image Processing tools, OpenCV (Open Source Computer Vision) and Matlab. Where Matlab is easier to setup and faster to debug, OpenCV usually runs faster due to its better optimization, has a much larger comprehensive open source library for computer vision, and many more functions. Not to forget, OpenCV is entirely free, whereas Matlab has a pretty pricing licensing involved.
Now without dwelling with the non-technical details, let us dive into the world of OpenCV! You can use OpenCV on Ubuntu, Windows, and macOS so no worries there. Installation can be a bit complicated but thankfully there are great guides out there for different Operating Systems. OpenCV is compatible with Python 2.7, Python 3.5, Java, C, and C++ so use whichever programming language you are most comfortable with. I would suggest learning in Python just because of the extensive support online for Python and OpenCV. For windows I usually prefer to work with Anaconda because of its versatility but it’s up to you. You will also need Numpy for numerical operations and Matplotlib for viewing your images in an easy way.
Now once the installation is out of the way, we can get started on the fun stuff! It’s important to note this article is a quick start guide to OpenCV, not a comprehensive tutorial. To get a further understanding of OpenCV I would suggest following a video tutorial such that on https://pythonprogramming.net/loading-images-python-opencv-tutorial/ or rent some books on OpenCV. The Video Tutorial Link Above is a very easy to understand and fun guide to OpenCV.
With OpenCV you can do with both Image and Video Processing. This is because a video is nothing but successive frames put together. The frames are then analyzed individually much like a single image. Most cameras nowadays usually record anywhere between 30 to 60 frames per second.
Most image processing operations in OpenCV is done on a simplified form of the actual image. Usually the image is converted to grayscale but we can also filter different colors from the original image or find gradients before sending the image to Processing. After extracting the information of this processed image, the information is then applied back to the original image or sent to your post processing program like a robot’s motor for example.
In Image Processing we have many different operations we can do. This includes Color Filtering, Edge Detection, Feature Matching, Object Recognition, and so much more.
There is very good Documentation online for any of your Image Processing Needs:
Well I hope this article has sparked your interest in Image Processing! Hopefully you don’t run into errors when installing OpenCV or any of the other required libraries. Have a fun time on your Image Processing Adventure and remember
“Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth
All the Best!