我见过有几个。 opencvdotnet,SharperCV,EmguCV,One on Code Project。.Net(dotNet)OpenCV包装?
有没有人有任何这些经验?我在Code Project上玩了一段时间,但只要我尝试做任何复杂的事情,我都会遇到一些令人讨厌的不可捕捉的异常(即Msgbox异常)。跨平台(支持Mono)将是最好的。
我见过有几个。 opencvdotnet,SharperCV,EmguCV,One on Code Project。.Net(dotNet)OpenCV包装?
有没有人有任何这些经验?我在Code Project上玩了一段时间,但只要我尝试做任何复杂的事情,我都会遇到一些令人讨厌的不可捕捉的异常(即Msgbox异常)。跨平台(支持Mono)将是最好的。
我从opencvdotnet开始,但它并没有真正积极地开发出来。此外,支持我需要的功能(facedetection)是不完整的。我现在使用的是EmguCV:它包装了API的很大一部分,它背后的人对建议和请求非常敏感。该代码是一种喜悦,可以在Mono上工作。
我写了一个快速getting-started guide在我的博客。
SharperCV是我们的首选工具,它不会让我们失望,因为我们的robotics project。即使它目前被标记为废弃,代码的状态也很好,只需稍作调整即可根据需要对其进行自定义。没有msgboxes,实际上非常理智的异常处理。
虽然不是跨平台的,但是由于互操作层。
我们使用OpenCVSharp谷歌代码网站是日文,但它使用最新的OpenCV构建和贯穿整个IDisposable。它似乎提供了比我们迄今为止所见到的其他功能更多的功能,并且仍然活跃。它也有相当广泛的示例程序。
我知道这个问题已经回答了很长时间,但我想补充说,有一个很好的包装here。这是您在code project上尝试的openCV包装器的新版本。我试了几天,一切都很完美。此外,我在几分钟内就能完成工作。
我不知道与单声道的兼容性,但在Visual Studio 2010下,它像一个魅力,节省了我大量的时间和金钱(我的项目是商业和大多数图书馆都是开源的许可证, “T允许商业利用,除非发布的代码)
我认为值得注意的是,原来的问题是问,和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”示例。
我认为最好的包装是opencvsharp http://code.google.com/p/opencvsharp/
我创建了一个NuGet包,使容易在C#中开始OpenCV的,使用EmguCV。
看看吧! 在Visual Studio中搜索并添加myEmguCV.Net NuGet包。
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)
要小心,EmguCV使用双GPL3 /商业许可证,而OpenCV使用BSD许可证。请注意,OpenCVSharp使用LGPL许可证。 OpenCVSharp自2014年4月起积极开发。 – Kaganar 2014-04-17 18:24:33
如果您计划将项目作为真正的可维护产品发布,请注意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
EmguCV依赖于旧版本的系统库(包括GTK + 2)。如果您计划在任何不受支持的系统上使用它,可能会造成问题,例如Arch Linux。 – 2016-10-20 04:36:54