【问题标题】:matchFeatures does not match all features when comparing the same image. Why?比较同一图像时,matchFeatures 不会匹配所有特征。为什么?
【发布时间】:2016-09-09 16:21:30
【问题描述】:

我有一个图像 I(灰度)。我从这张图片中检测并提取了 SURF 特征:

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

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

indexPairs = matchFeatures(features,features);

索引对仅返回 365 个匹配项。为什么 ???请注意,我发现此结果仅适用于三张图片中的一张。对于其他两个图像,matchFeatures 返回与 extractFeatures 相同数量的特征。谢谢!

【问题讨论】:

    标签: matlab computer-vision feature-detection surf


    【解决方案1】:

    函数matchFeatures 具有匹配阈值参数MatchThresholdMaxRation,它们拒绝潜在的错误或模糊匹配,例如规定最佳找到的匹配必须优于第二最佳匹配某个因素。

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

    【讨论】:

    • 谢谢!但这会影响基于匹配特征数量计算两幅图像之间的相似度吗?目前,我是这样计算的: nbmatch = size(indexPairs,1);最小尺寸 = 最小(尺寸(特征,1));相似度 = nbmatch/minsize。这导致图像与其自身的相似性度量低于 1。
    • @Julien 当然,因为这个公式中的相似性是匹配特征的百分比。一些匹配,即使来自相同的特征,仍然可能被匹配算法拒绝。
    • 我认为这是 Lowe 在他介绍 SIFT 的论文中提出的相似性测量,但我当然应该重新阅读这篇论文......谢谢!
    • 没错,就是Lowe提出的措施。
    • 所以这种相似性度量应该有利于对象识别,但可能不适合我的目的:计算几个图像之间的视觉相似性矩阵。在这种情况下,我需要在所有图像之间进行相似度测量(因此所有图像对的相似度的理论最大值应该相同)。那么您会推荐哪种基于 SIFT/SURF 的测量方法?
    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2015-06-07
    • 2012-04-28
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多