. net OpenCV包装器值得使用吗?

Are .Net OpenCV wrappers worth using?

本文关键字:值得 OpenCV 包装 net      更新时间:2023-10-16

所以我们在大学有这个图像处理课程,我们将广泛使用OpenCV。问题是,OpenCV使用c++,但我对c#比c++更熟练。我知道有OpenCV的包装器(OpenCVDotNet, SharperCV, EmguCV,…)但是我不知道该选哪个。

我的问题是

  • 哪一个封装了大部分/所有的OpenCV功能?
  • 它们值得使用吗?(可能不经常更新,缺乏功能或速度,…)
  • 或者我应该更好地刷我的c++技能?

注意:我知道我的问题可能是这个问题的副本,但它是旧的(从2008年开始),事情可能已经改变了

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

摘自SharperCV的网站:
Emgu CV。如果你想使用OpenCV, Net包装器是我们目前的推荐。

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

我试过EmguCV。它支持的功能范围很好。但如果你的项目是一个速度问题,那么你最好温习一下你的c++技能。

我不太了解其他的包装。我也经历过和你一样的处境。我在学习期间使用过emgucv,在我的专业领域不得不转向c++。

相信我,你不会发现转换到c++太难了。

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

我在研究和工作中都使用过OpenCV + c++和EMGU Wrapper,我部分同意大多数人的观点。

EMGU CV可以很容易学习,你的代码将更容易理解,它将需要更少的代码行,有一个体面的函数范围,你可以调用。但这还不完整。

许多函数将不提供所有最初预期的功能,你会发现与OpenCV 3.0,例如FindNonZero()不完全相同的功能,包装和SetValue()给了我一个很难抛出运行时错误难以调试。

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

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