我见过有几个。 opencvdotnet, 夏普简历, 埃姆古CV, 代码项目之一.

有人对这些有任何经验吗?我在代码项目上玩了一段时间,但是当我尝试做任何复杂的事情时,我遇到了一些令人讨厌的无法捕获的异常(即消息框例外)。跨平台(支持 Mono)是最好的。

有帮助吗?

解决方案

我开始使用 opencvdotnet,但它不再真正积极地开发了。此外,对我需要的功能(面部检测)的支持并不完善。我在用着 埃姆古CV 现在:它包含了 API 的大部分内容,并且其背后的人员对建议和请求非常敏感。该代码看起来很有趣,并且可以在 Mono 上运行。

我已经写了一个快速的 入门指南 在我的博客上。

其他提示

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

我认为重要的是要注意最初的问题是在 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”样本。

OpenCV.NET 可从 NuGet 获取

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

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

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

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

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

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

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

一探究竟!在 Visual Studio 中搜索并添加 myEmguCV.Net NuGet 包。

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

SharperCV 是我们选择的工具,它并没有让我们失望,因为我们 机器人项目. 。尽管它目前被标记为废弃,但代码的状态非常好,只需要进行少量调整即可根据您的需要进行自定义。没有消息框,实际上非常理智的异常处理。

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

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

我不知道与 mono 的兼容性,但在 Visual Studio 2010 下,它就像一个魅力,节省了我大量的时间和金钱(我的项目是商业的,大多数库都是开源的,具有不允许商业使用的许可证除非发布代码,否则使用)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top