2016-05-13 29 views
2

我有一个图像我(灰度)。我从此图像中检测并提取了SURF特征:matchFeatures在比较相同图像时不匹配所有功能。为什么?

poi = detectSURFFeatures(I); 
[features,validPoi] = extractFeatures(I,poi,'SURFSize',128); 

已找到373项特征。但是,当我计算与自己匹配的功能数量时,并非所有功能都匹配:

indexPairs = matchFeatures(features,features); 

索引对仅返回365个匹配项。为什么?请注意,我只在三个图像中找到了这个结果。对于其他两幅图像,matchFeatures会返回与extractFeatures相同数量的特征。谢谢 !

回答

1

函数matchFeatures具有匹配的阈值参数MatchThresholdMaxRation,其通过例如规定最佳找到的匹配必须比第二最佳匹配好某个因子来拒绝可能的错误或模糊匹配。

即使图像相同,也会出现这种情况。

+0

谢谢!但是,这是否会影响基于匹配特征数目计算两幅图像之间的相似度?目前,我正在计算它是这样的:nbmatch = size(indexPairs,1); minsize = min(size(features,1));相似度= nbmatch/minsize。这导致图像自身的相似性度量低于1. – Julien

+0

@Julien当然可以,因为这个公式中的相似度是匹配特征的百分比。即使是相同的特征,一些匹配可能仍然会被匹配算法拒绝。 – Maurits

+0

我认为这是Lowe在他的论文中提出的相似度测量方法,但我当然应该重新阅读本文......谢谢! – Julien

相关问题