it-swarm.cn

OpenNet的.Net(dotNet)包装器?

我见过他们中有一些。 opencvdotnetSharperCVEmguCV一个代码项目

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

69
Kris Erickson

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

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

66
friism

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

22
tidyup

我认为重要的是要注意原始问题是在 2008 ,而OpenCV 2.0是在 2009年发布 。 2.0版本引入了一个C++包装器,它比OP面临的旧C接口更容易使用。对于我的.NET项目,我将所有图形操作留在本机C++中。

试试这个: 创建一个链接到OpenCV库的C++/CLR DLL项目。 OpenCV手册描述了如何为Windows C++ EXE执行此操作,相同的步骤也适用于C++/CLR DLL。当然,DLL exports方法可以从.NET EXE中调用。

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

17
Paul Williams

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)
10
VoteCoffee

我创建了一个NuGet包,使用EmguCV轻松启动C#中的OpenCv。

看看这个!在Visual Studio中搜索并添加 myEmguCV.Net NuGet包。

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

2
Tony

我认为最好的包装器是opencvsharp http://code.google.com/p/opencvsharp/

2
mrgloom

我知道这个问题已经回答了很长一段时间,但我想补充说有一个非常好的包装 这里 。这是你在 代码项目 上试过的openCV包装器的新版本。我已经尝试了几天,一切都很完美。而且,我在几分钟内完成了它。

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

0
Jean-François Côté

SharperCV是我们的首选工具,它不会让我们失望,因为我们 机器人项目 。虽然它目前被标记为废弃,但代码处于非常好的状态,只需要进行微调即可根据您的需要进行自定义。没有msgboxes,实际上非常理智的异常处理。

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

0
Silver Dragon