最近,我参与了机器人项目;我的机器人可以通过颜色检测物体,但我发现对不同的物体不够好。因此,我希望机器人SURF实时图像找到将使用其模板定义的目标对象。
不幸的是,我不知道如何将模板的关键点与图像中的图像相匹配。
答案 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给出的样本应该对你有很大的帮助:))