OpenNet的.Net(dotNet)包装器?

Kri*_*son 70 .net c# mono opencv cross-platform

我见过他们中有一些. opencvdotnet,SharperCV,EmguCV,One on Code Project.

有没有人有这些经验?我在Code Project上玩了一下,但是当我尝试做任何复杂的事情时,我得到了一些讨厌的无法捕获的异常(即Msgbox异常).跨平台(支持Mono)将是最好的.

fri*_*ism 68

我从opencvdotnet开始,但它还没有真正开发出来.此外,对我需要的功能(facedetection)的支持是不完整的.我现在正在使用EmguCV:它包含了更多的API,而它背后的人对建议和请求非常敏感.代码是一种欣赏的乐趣,并且已知在Mono上工作.

我在博客上写了一篇快速入门指南.

  • 请注意,EmguCV使用双GPL3 /商业许可证,而OpenCV使用BSD许可证.请注意,OpenCVSharp使用LGPL许可证.OpenCVSharp自2014年4月起积极开发. (7认同)

小智 22

我们使用OpenCVSharp谷歌代码网站是日语,但它使用最新的OpenCV构建和impisments IDisposable贯穿始终.它似乎提供了比我们迄今为止看到的任何其他人更多的功能,并且仍然是活跃的.它也有相当广泛的示例程序.

  • 它也可以在[github]上找到(https://github.com/shimat/opencvsharp) (2认同)

Pau*_*ams 18

我认为值得注意的是,原始问题是在2008年提出的,而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"样本.

  • 我真的很喜欢你的主意.通过忽略第三方包装来消除一层维护和复杂性听起来很棒.您能链接/提供修改后的源代码的最小示例吗? (3认同)

Vot*_*fee 11

NuGet提供OpenCV.NET

https://bitbucket.org/horizo​​ngir/opencv.net

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

以下是项目网站的功能列表:

OpenCV.NET是流行的OpenCV计算机视觉和图像处理库的.NET接口.这些绑定是在一年内开发的,包括许多其他尝试中缺失的功能,即:

  • 跨平台Mono兼容性(仅使用P/Invoke)
  • 非常接近100%支持最新的C API(包括未记录的功能)
  • 所有支持的方法,类和枚举成员的完整文档/ intellisense(从许多不同来源艰苦挖掘)
  • 支持例外
  • 垃圾收集器友好:
    • GC知道矩阵和图像使用的实际内存
    • 即使发生并发垃圾收集,指针也能保证在函数调用中存活
  • 尽可能遵循C++ API的对象模型(面向未来对C++ API的更多支持)
  • BSD式许可证(MIT)

  • 感谢您在原始帖子发布后 5 年内不断更新答案。 (3认同)