如何通过SURF将模板与原始图像匹配?

时间:2011-10-05 06:46:36

标签: c++ opencv computer-vision surf object-detection

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

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

1 个答案:

答案 0 :(得分: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给出的样本应该对你有很大的帮助:))