3

我正在用 c# 编写一个计算机视觉程序,需要 SIFT 项目的一部分;我下载了 SIFT 的 MEMO 库:

http://www.nowozin.net/sebastian/tu-berlin-2006/libsift/

在我的项目中,我添加了两个库 ****libsift.dll 和 ICSharpCode.SharpZipLib.dll** ** 作为对我的项目的引用。

在此处输入图像描述

现在我想在代码“USING libsift”之上提到 libsift,它无法识别它;

在此处输入图像描述

如果我想制作此类 atuo detect 的实例,则更甚,无法识别它。

在此处输入图像描述

这很奇怪,因为我可以在对象浏览器中看到这个库的功能。

在此处输入图像描述

尽管我可以在对象浏览器中看到这些功能,但我无法使用我已经在项目中作为引用导入的库?可能是什么问题呢?

(我在 Windows 中有 c# .Net VS2010。)

4

1 回答 1

7

看起来它们在根命名空间中 - 而不是在名为libsift. 如果是这种情况,您不需要using libsift;指令 - 只需尝试Keypoint直接访问 etc。或者可能global::Keypoint。应该注意的是,将类型转储到根命名空间是不受欢迎的——它很难避免冲突。但那是 的错libsift

另一种可能性是您更改了引用上的“别名”属性;那应该是“全球性的”。当您在解决方案资源管理器中选择单个引用时,您可以在属性面板中看到这一点 - 旁边是“复制本地”、“特定版本”等内容。如果是其他内容:将其更改回“全局”,或学习关于外部别名

在本地测试(类型在全局命名空间中):

在此处输入图像描述

于 2012-11-07T22:52:45.643 回答