0

我在一张图像上应用了 SIFT,但两次,例如:

[image1, descript1, location1] = sift('book.pgm'); [image2, descript2, location2] = sift('book.pgm');

匹配功能后它会显示所有点都匹配,我想消除所有自动匹配,即一个点与自身的匹配。

在图像中某些区域是复制粘贴的,我只想显示匹配的点。

有人有建议怎么做吗?谢谢

4

2 回答 2

0

以下步骤可能有效,但我不能确定。

获取一组匹配项,以便为第一张图像中的每个描述符提取 2 个最佳匹配项。然后使用 RANSAC 计算单应性。你可以在这里找到一个教程,但是你可以很容易地将 SURF 替换为 SIFT 或任何其他描述符。找到内部匹配集,它应该由相同图像中对应点之间的匹配组成。删除所有这些匹配项。

现在计算剩余匹配的基于 RANSAC 的单应性并找到内点集。该集合可能对应于复制粘贴的区域。

于 2013-04-19T13:14:42.790 回答
0

您可能想尝试的另一种方法是:

  • 获取两个图像的像素差异。然后,差异图像将仅包含复制粘贴的区域。
  • 从差异图像创建掩码,即差异图像中的任何非零像素在掩码上变为 1。
  • 在图像 1 和图像 2 的掩码版本之间进行特征匹配。

请记住,这仅在重复图像不是第一个图像的旋转版本时才有效。

于 2013-04-19T15:25:54.120 回答