OpenCV, MATLAB or AForge ??

OpenCV, MATLAB and AForge Logos

If you are new to computer vision, you may be wondering where to start. First you have to understand the basic principles of image processing and computer vision. Then you have to choose a suitable language to develop your computer vision application. Some of the most popular methods are using OpenCV with C/C++, MATLAB and AForge. If you don't really know why you would choose one over the other, here is my explanation.

MATLAB is the most easiest way to process images. There are lots of in-built image processing functionalities which come with the MATLAB IDE which you can just drag and drop into your code. But it is not as efficient as you would expect for a real time image processing application. And it's not a free tool either. 

On the other hand, OpenCV is a free open source library which allows you to process images efficiently. OpenCV together with C/C++ interface is designed with a strong focus on real time image procession applications. Learning OpenCV has become hardest way only because there is no proper documentation and error handling codes.  But OpenCV has lots of basic inbuilt image processing functions so that those who want to learn computer vision can develop their applications through proper understanding about what they do.  

AForge.NET is a open source C# framework which provides a convenient way of  processing images. In terms of complexity and computational efficiency, AForge.NET stands in between that of OpenCV and MATLAB frameworks.

So, I think that it is worthy to learn computer vision with OpenCV to get a better understanding about what you do. Therefore in this blog, basic image processing functions and computer vision applications written in OpenCV/C++ are presented with line by line explanations.