OpenCV, MATLAB or AForge ??

OpenCV MATLAB AForge Logo
Image processing is the process of manipulating image data in order to make it suitable for computer vision applications or to make it suitable to present it to humans. For example, changing brightness or contrast  is a image processing task which make the image visually pleasing for humans or suitable for further processing for a certain computer vision application.

Computer vision which go beyond image processing, helps to obtain relevant information from images and make decisions based on that information. In other words, computer vision is making the computer see as humans do. Basic steps for a typical computer vision application as follows.
  1. Image acquisition
  2. Image manipulation
  3. Obtaining relevant information
  4. Decision making
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.

Here is the entire list of OpenCV lessons


  1. Very Useful information that i have found. donot stopand Please keep updating us..... Thanks

  2. Nice tutorial. Thanks for sharing the valuable info about c Training. it’s really helpful. Who want to learn c language this blog most helpful. Keep sharing on updated tutorials…..

  3. "Image processing is the process of manipulating image" it is a really actual meaning of photo manipulation.