Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are .Net OpenCV wrappers worth using? [closed]

Tags:

c++

c#

.net

opencv

So we have this Image processing course at the university and we'll be using OpenCV extensively. Problem is, OpenCV uses C++ but I'm much more fluent in C# than C++. I know that there are wrappers for OpenCV (OpenCVDotNet, SharperCV, EmguCV,...) But I don't know which to choose.

My questions are :

  • Which one wraps most/all of OpenCV functionality ?
  • Are they even worth using ? (May not be updated often, lack functionality or speed,...)
  • Or should I be better off brushing my C++ skills?

Note : I know that my question is a possible duplicate of this one but it's old (from 2008) and things may have changed.

like image 468
Nasreddine Avatar asked Oct 24 '11 19:10

Nasreddine


3 Answers

I have not used EmguCV, but I have used OpenCV for a while now.

From SharperCV's website:
The Emgu CV.Net wrapper is our current recommendation if you want to use OpenCV.

And, OpenCVDotNet looks more like an academic sandbox, so if it were me, I would use EmguCV for any of my research projects that involved C#. Mainly because it is being actively maintained, and it has the most features of the available wrappers today.

like image 90
mevatron Avatar answered Sep 19 '22 22:09

mevatron


I had tried EmguCV. The range of functionalities it supports is fine. But if your project is something in which the speed is an issue, then it would be better to brush up your C++ skills.

I do not know much about other wrappers. I was in your same position once. I worked in emgucv during my academics and had to shift to c++ in my profession.

Believe me, you wont find it too difficult to move onto C++.

like image 41
Anoop K. Prabhu Avatar answered Sep 17 '22 22:09

Anoop K. Prabhu


As an update, I can corroborate the answers previously given.

I have used both OpenCV with C++ and the EMGU Wrapper for both research and work and I agree partially with most people.

EMGU CV can be easy to learn and your code will be much easier to understand, it will require less lines of code and there is a decent range of functions you can call. But it is not complete.

Many functions will not provide all the originally intended functionality that you will find with OpenCV 3.0 e.g. FindNonZero() does not work exactly the same as the function that is wrapping and SetValue() gave me a hard time throwing runtime errors difficult to debug.

On the other hand, OpenCV provides great support compared to any other Wrapper you might find online and you will be working with the most up-to-date libraries. OpenCV 3.1 is a great release and I found no problems running it on Xcode or Visual Studio.

Therefore, I would recommend anyone wanting to immerse themselves into Computer Vision and Image Processing to go straight for OpenCV C++. If you just want to work on less complex problems you can opt for EMGU (I cannot recommend others as I am not familiar).

like image 37
saqe hi Avatar answered Sep 18 '22 22:09

saqe hi