在emgu CV中使用SURF进行物体识别

时间:2012-08-12 15:54:43

标签: c# .net image-processing opencv emgucv

对于我的项目,我需要使用SURF识别对象(在我的情况下,它是一扇门)。我正在使用emguCV(openCv c#wrapper)。

我一直在使用emguCV库中的surf feature detection example

通过使用这个,我只能识别出具有给定模板(模型)图像的少量物体图像(例如:门)。

由于存在不同类型的门,对于某些门图像,它未被检测为门。所以,我决定如果我可以把不同种类的门图像(2个或更多图像)作为模型(模板)图像,那么我可以得到更准确的结果。

我的问题是我对如何使用2个或更多模型(模板)图像编写代码没有明确的想法?基本上,我想知道通过使用哪个参数,我们可以说它是从代码中检测到的?

(视觉上如果检测到,它会在匹配的对象周围绘制一个红色矩形。)

非常感谢你的帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

我在上一学期作为数据结构课程项目完成了这项工作。在那我试图从凸轮检测到一张脸。我在开始时就已经做了很多工作,然后在3,4个月后我终于完成了它。它能够正确地检测到面部。检测到时,它会在脸部周围带绿线。该方法与面部或某些门或汽车或其他任何方法相同。这里的问题是如何开始?是的,这很简单,你只需要使用EMGU CV和OPEN CV(就像我一样)。我必须告诉我,EMGU CV适用于.Net,同样OPEN CV适用于其他。您唯一需要注意的是“门的XML”就是这样!其余的图书馆很容易在这里找到: http://sourceforge.net/projects/emgucv/ 你可以从前面的链接下载它。接下来是什么?接下来你必须添加这些库。完成后,您可以根据您的要求使用。正如我上面提到的,如果你正在检测门,那么你需要“门的XML”。因为您在代码中使用的XML定义了该检测。因为XML告诉你需要检测哪个对象,在我的例子中我使用了face of XML来检测face。你可以用来上门。您还有一个选项可以选择从网络中选择门的XML文件,还是可以更改现有的门。 当你要求使用2个或更多门图像时,这种方法不是专业的!!让我们说如果你之前没有硬编码的门的图像和新的门出现了什么?什么都不会发生。没有检测呢! 休息是你的要求。我希望现在有点清楚现在要找什么!! .. 问候 Taimoor Alam。