.Net OpenCV包装是否值得使用?

时间:2011-10-24 19:49:57

标签: c# .net c++ opencv

所以我们在大学有这个图像处理课程,我们将广泛使用OpenCV。问题是,OpenCV使用C ++,但我比C ++更流利C#。我知道有OpenCV的包装器(OpenCVDotNetSharperCVEmguCV,...)但我不知道选择哪个。

我的问题是:

  • 哪一个包含大部分/全部OpenCV功能?
  • 他们甚至值得使用吗? (可能不经常更新,缺乏功能或速度,......)
  • 或者我应该更好地刷我的C ++技能?

注意:我知道我的问题可能与this one重复,但它已经过时(从2008年开始),事情可能已经发生变化。

3 个答案:

答案 0 :(得分:19)

我曾尝试过EmguCV。它支持的功能范围很好。但是如果你的项目速度是一个问题,那么最好提高你的C ++技能。

我对其他包装不太了解。我曾经在同一个位置。我在学术期间在emgucv工作,不得不转向我职业的c ++。

相信我,你不会发现转向C ++太难了。

答案 1 :(得分:18)

我没有使用过EmguCV,但我现在已经使用过OpenCV了一段时间。

来自SharperCV的网站:
如果您想使用OpenCV,Emgu CV.Net包装器是我们目前的建议。

而且,OpenCVDotNet看起来更像是一个学术沙箱,所以如果是我,我会将EmguCV用于任何涉及C#的研究项目。主要是因为它正在积极维护,并且它具有当今可用包装的最多功能。

答案 2 :(得分:5)

作为更新,我可以证实以前给出的答案。

我已经将OpenCV与C ++和EMGU Wrapper一起用于研究和工作,我同意大多数人的意见。

EMGU CV易于学习,您的代码将更容易理解,它将需要更少的代码行,并且您可以调用相当多的功能。但它并不完整。

许多功能都不会提供您在OpenCV 3.0中找到的所有最初预期的功能,例如FindNonZero()与包装函数完全不同,SetValue()给我带来了很难调试运行时错误的难度。

另一方面,与您在网上找到的任何其他Wrapper相比,OpenCV提供了很好的支持,您将使用最新的库。 OpenCV 3.1是一个很棒的版本,我发现在Xcode或Visual Studio上运行它没有任何问题。

因此,我建议任何想要沉浸在计算机视觉和图像处理中的人直接使用OpenCV C ++。如果你只想处理不那么复杂的问题,你可以选择EMGU(我不能推荐别人,因为我不熟悉)。