最近,我从事机器人项目。我的机器人可以通过颜色来检测物体,但是我发现对于其他物体而言,它还不够好。因此,我希望机器人实时对图像进行SURF处理,以找到将使用其模板定义的目标对象。

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

最佳答案

在您的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提供的示例应该对您有很大帮助:)

10-08 08:20
查看更多