Differences between AForge and OpenCV

I just study computer vision and C #. It seems that there are two outstanding image processing libraries: OpenCV and AForge . What are some differences between the two?

I am doing a basic image editor in C #, and while researching, I came across articles on both. But I don’t know why I would choose one of them. I would like to eventually improve the application to include more complex features.

Thank.

+41
c # image-processing opencv aforge
Apr 14 '09 at 20:28
source share
3 answers

I am using OpenCV for a project at school right now and I have looked at the documentation for AForge and their function seems to be different. AForge has many filters and is probably great for various transformations and image manipulations. But it seems that in other areas this is not enough. I could not find any matrix operations that were a disappointment, as it is so useful in computer vision. Our current project (3D-cloud reconstruction from an image sequence), as far as I could see from the documents, cannot be associated with AForge alone.

Combine AForge with a good linear algebra library and you might have something really useful.

As for OpenCV, it has a rich feature set, but it is a bit complicated for programming.

+14
Apr 25 '09 at 13:41
source share

Well, why not use both;) ??

I use (literally in C # ... lol) EMGUCV.NET (which is the OpenCV C # shell) and AFORGE.NET at the same time:

AFORGE.NET plus its “Image Processing Lab” is of great importance for filtering options (edge ​​detection, thresholds, etc.) and weakening of viewing functions.

OpenCV provides everything else, like SIFT / SURF and other more complex image processing procedures.

That's why you use .NET: just bring all the components you need in one application :)

+40
Jan 23 '11 at 17:12
source share

If you want to improve your application with more advanced functions, as you said, I would go for OpenCV, however, part of your success depends on the fact that the C # port is actively updated, i.e. a lot of problems considering the three ports. I think EmguCV seems to be one of the best from the point of view of updating, but when I looked at it, you did not have documentation (but you could probably translate C ++ code into C # with some knowledge in C ++). It seems to me that it is much easier for me, and that I am using now. OpenCV also supports haarcascade.xml files that you can use, including face detection.

So, for the final take: both will suit you, OpenCV is more widely used / supported (although most of the user base is C ++), AForge is easier. It all comes down to what you want to do.

+3
Jan 07 '10 at 4:35 on
source share



All Articles