我在一张图像上应用了 SIFT,但两次,例如:
[image1, descript1, location1] = sift('book.pgm'); [image2, descript2, location2] = sift('book.pgm');
匹配功能后它会显示所有点都匹配,我想消除所有自动匹配,即一个点与自身的匹配。
在图像中某些区域是复制粘贴的,我只想显示匹配的点。
有人有建议怎么做吗?谢谢
我在一张图像上应用了 SIFT,但两次,例如:
[image1, descript1, location1] = sift('book.pgm'); [image2, descript2, location2] = sift('book.pgm');
匹配功能后它会显示所有点都匹配,我想消除所有自动匹配,即一个点与自身的匹配。
在图像中某些区域是复制粘贴的,我只想显示匹配的点。
有人有建议怎么做吗?谢谢
以下步骤可能有效,但我不能确定。
获取一组匹配项,以便为第一张图像中的每个描述符提取 2 个最佳匹配项。然后使用 RANSAC 计算单应性。你可以在这里找到一个教程,但是你可以很容易地将 SURF 替换为 SIFT 或任何其他描述符。找到内部匹配集,它应该由相同图像中对应点之间的匹配组成。删除所有这些匹配项。
现在计算剩余匹配的基于 RANSAC 的单应性并找到内点集。该集合可能对应于复制粘贴的区域。
您可能想尝试的另一种方法是:
请记住,这仅在重复图像不是第一个图像的旋转版本时才有效。