2008-09-17 118 views

回答

63

我从opencvdotnet开始,但它并没有真正积极地开发出来。此外,支持我需要的功能(facedetection)是不完整的。我现在使用的是EmguCV:它包装了API的很大一部分,它背后的人对建议和请求非常敏感。该代码是一种喜悦,可以在Mono上工作。

我写了一个快速getting-started guide在我的博客。

+6

要小心,EmguCV使用双GPL3 /商业许可证,而OpenCV使用BSD许可证。请注意,OpenCVSharp使用LGPL许可证。 OpenCVSharp自2014年4月起积极开发。 – Kaganar 2014-04-17 18:24:33

+0

如果您计划将项目作为真正的可维护产品发布,请注意OpenCVSharp。我玩了几个星期 - 它运行良好,但文档和示例很少。我喜欢它的BSD许可证,开发者很好/活跃,但他需要一个合适的团队。 EmguCV的[文档](http://www.emgu.com/wiki/files/3.0.0/document/html/2ec33afb-1d2b-cac1-ea60-0b4775e4574c.htm),[工作示例](http:// sourceforge .net/p/emgucv/code/ci/master/tree/Emgu.CV.Example /)和[community support](http://stackoverflow.com/questions/tagged/emgucv?sort=frequent)是非常优越的。 – kdbanman 2015-07-08 18:02:48

+0

EmguCV依赖于旧版本的系统库(包括GTK + 2)。如果您计划在任何不受支持的系统上使用它,可能会造成问题,例如Arch Linux。 – 2016-10-20 04:36:54

0

SharperCV是我们的首选工具,它不会让我们失望,因为我们的robotics project。即使它目前被标记为废弃,代码的状态也很好,只需稍作调整即可根据需要对其进行自定义。没有msgboxes,实际上非常理智的异常处理。

虽然不是跨平台的,但是由于互操作层。

20

我们使用OpenCVSharp谷歌代码网站是日文,但它使用最新的OpenCV构建和贯穿整个IDisposable。它似乎提供了比我们迄今为止所见到的其他功能更多的功能,并且仍然活跃。它也有相当广泛的示例程序。

0

我知道这个问题已经回答了很长时间,但我想补充说,有一个很好的包装here。这是您在code project上尝试的openCV包装器的新版本。我试了几天,一切都很完美。此外,我在几分钟内就能完成工作。

我不知道与单声道的兼容性,但在Visual Studio 2010下,它像一个魅力,节省了我大量的时间和金钱(我的项目是商业和大多数图书馆都是开源的许可证, “T允许商业利用,除非发布的代码)

16

我认为值得注意的是,原来的问题是问,和OpenCV 2.0 2009年被释放是非常重要的。 2.0版本引入了一个C++包装器,与OP所面临的旧C接口相比,该包装器的工作容易得多。对于我的.NET项目,我将所有图形操作都放在本机C++中。

试试这个:创建一个链接到OpenCV库的C++/CLR DLL项目。 OpenCV手册介绍了如何为Windows C++ EXE执行此操作,对于C++/CLR DLL也同样适用。当然,DLL导出可从.NET EXE调用的方法。

为了测试它,你应该能够将任何OpenCV的样品到你的DLL稍加调整。 (将.CPP文件添加到您的项目中,将main()函数转换为类成员等 - 您知道钻取...)好的测试候选者可能是“mat_mask_operations”示例。

10

OpenCV.NET可从的NuGet

https://bitbucket.org/horizongir/opencv.net

https://www.nuget.org/packages/OpenCV.Net

下面是从项目现场的功能列表:

OpenCV.NET是一个流行的.NET界面OpenCV计算机视觉和图像 处理库。这些绑定被开发 超过一年的课程,包括许多功能已经 从其他尝试缺失,即:

  • 跨平台的单声道兼容性(只用P/Invoke的)
  • 非常接近至100%的支持的最新C API(包括未公开的函数)
  • 完整文档/智能感知对于所有支持的方法,类和枚举成员的(费力来自许多不同来源开采)
  • 例外支持
  • 垃圾收集友好:
    • GC知悉矩阵和图像
    • 指针是保证生存功能,实际使用的内存,即使并发垃圾回收发生
  • 对象模型下面的C++ API调用尽可能(朝向未来增加支持C++ API的)
  • BSD风格许可证(MIT)