1

最近,我从事机器人项目;我的机器人可以通过颜色检测物体,但我发现对于不同的物体来说不够好。因此,我希望机器人能够实时浏览图像以找到将使用其模板定义的目标对象。

不幸的是,我不知道如何将模板的关键点与其在图像中的图像相匹配。

4

1 回答 1

1

有一个很好的例子可以知道如何在你的 OpenCV 目录中的示例目录中使用 SURF:OpenCV/samples/c/find_obj.cpp

您需要使用 SURF 描述符(参见第 245-255 行)

CvSeq *objectKeypoints = 0, *objectDescriptors = 0;
CvSURFParams params = cvSURFParams(500, 1);
cvExtractSURF(object, 0, &objectKeypoints, &objectDescriptors, storage, params);

您应该使用 CvSeqReader 读取描述符:

CvSeqReader reader;
cvStartReadSeq(descriptors, &reader, 0);

对场景做同样的事情,并使用 NN 搜索中的两个描述符来查找它们之间的匹配。再次,OpenCV 提供的示例应该对您有很大帮助:)

于 2011-10-05T10:26:09.950 回答