我正在尝试编写将openCVSharp3库与.NET 4.5和VS2015一起使用,它应该只是OpenCV 3.0的包装,但到目前为止还没有成功。我用C代码编写了非常简单的控制台应用程序:
static void Main(string[] args)
{
var sift = SIFT.Create(100);
}
但是我得到了这个例外: 类型为' System.EntryPointNotFoundException'的未处理异常发生在OpenCvSharp.dll中 附加信息:无法找到名为' xfeatures2d_SIFT_create'的入口点在DLL' OpenCvSharpExtern'。
我查看了openCVSharp的代码,这个方法确实存在但是在标有
的块中#ifdef ENABLED_CONTRIB
有没有办法确定当前nuget包中是否启用了此功能。
我不知道如何继续调试此异常,因为我从未为c ++库编写任何类型的包装器。 另外我不知道我的VS2015与VC14编译器是否不介意这个代码。
修改: 来自openCVSharp for sift算法的示例项目抛出相同的异常......我的猜测是它在这个版本的nuget包中被禁用。
答案 0 :(得分:0)
正如您所知,在OpenCV 3.0中,SIFT和SURF已迁移到外部contrib库,OpenCvSharp v3.0目前不支持。您可以在https://github.com/shimat/opencvsharp/issues/146找到更多相关详细信息以及建议。