1

我正在尝试编写将库 openCVSharp3 与 .NET 4.5 和 VS2015 一起使用,它应该只是 OpenCV 3.0 的包装器,但到目前为止还没有成功。我只使用以下代码在 C# 中编写了非常简单的控制台应用程序:

static void Main(string[] args)
{
  var sift = SIFT.Create(100);
}

但我得到了这个异常:OpenCvSharp.dll 中发生了“System.EntryPointNotFoundException”类型的未处理异常附加信息:无法在 DLL“OpenCvSharpExtern”中找到名为“xfeatures2d_SIFT_create”的入口点。

我查看了 openCVSharp 的代码,这个方法确实存在,但在块中标有

#ifdef ENABLED_CONTRIB

有没有办法确定当前 nuget 包中是否启用了此功能。

我不知道我应该如何继续调试这个异常,因为我从来没有为 c++ 库编写过任何类型的包装器。另外我不知道我的带有 VC14 编译器的 VS2015 是否不介意这段代码。

编辑: 来自openCVSharp的筛选算法示例项目抛出相同的异常......我的猜测是它在这个版本的nuget包中被禁用。

4

1 回答 1

0

如您所见,在 OpenCV 3.0 中,SIFT 和 SURF 已移至外部 contrib 库,目前在 OpenCvSharp v3.0 中不受支持。您可以在此处找到更多详细信息https://github.com/shimat/opencvsharp/issues/146以及建议。

于 2015-12-07T14:26:56.257 回答