对于我的项目,我需要使用 SURF 识别对象(在我的例子中是一扇门)。我正在使用 emguCV(openCv c# 包装器)。
我一直在使用 surf feature detection example来自 emguCV 库。
通过使用它,我只能用给定的模板(模型)图像识别少数物体图像(例如:门)。
由于有不同类型的门,对于某些门图像,它未被检测为门。所以,我决定如果我可以将不同种类的门图像(2 个或更多图像)作为模型(模板)图像,那么我可以获得更准确的结果。
我的问题是我不清楚如何编写代码来处理 2 个或更多模型(模板)图像?基本上,我想知道通过使用哪个参数,我们可以说它是否从代码中检测到?
(视觉上如果检测到,它会在匹配的对象周围绘制一个红色矩形。)
非常感谢您的帮助。
谢谢
最佳答案
我在上学期作为数据结构类(class)项目完成了这项工作。因为我试图从摄像头中检测到一张脸。一开始我在这方面做了很多工作,然后在 3.4 个月后我终于完成了。它能正确检测到那张脸。检测到时,它会在脸部周围带上绿线。该方法与面部或某些门或汽车或其他任何东西相同。这里的问题是如何开始?是的,这很简单,您只需要使用 EMGU CV 和 OPEN CV(就像我一样)。我必须在这里告诉您,EMGU CV 适用于 .Net,而 OPEN CV 适用于其他一些。您唯一需要寻找的就是“门的 XML”!其余的库在这里很容易获得: http://sourceforge.net/projects/emgucv/ 您可以从前面的链接下载它。接下来是什么?接下来是您必须添加这些库。完成后,您可以根据需要使用 then as 。正如我上面提到的,如果您正在检测门,那么您需要“门的 XML”。因为您在代码中使用的 XML 正在定义该检测。因为 XML 告诉您需要检测哪个对象,所以在我的示例中,我使用人脸 XML 来检测人脸。你可以用在门上。您还有一个选择,可以选择是从网上选择一扇门的 XML 文件,还是可以对现有文件进行更改。 当您要求使用 2 个或更多门图像时,这种方法不是专业的方法!!比方说,如果您之前没有硬编码的门图像和新门出现了怎么办?什么都不会发生。没有检测到! 休息是你的要求。我希望它现在有点清楚现在要寻找什么!!.. 问候 泰穆尔阿拉姆。
关于c# - 在 emgu CV 中使用 SURF 进行对象识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11923549/