我使用 ruby 的图像库rmagick
来比较两个图像,以检测它们是否实际上是相同的图像(避免重复)。
我通常这样做的方式是使用差异方法:
require 'rmagick'
img1.difference(img2)
#=> [238.738932291668, 0.001389172567175018, 0.0184313725490196]
上面的例子是两个图像的输出,这肯定是相同的。这对我来说效果很好,直到我偶然发现一个新场景,这种方法不能很好地处理 - 如果图像相同(甚至相同大小),但其中一个已被裁剪,例如边框的 10px . 现在突然之间,即使这两张图片在人眼看来完全一样,但计算机会认为它们非常不同,因为其中一张图片被裁剪了一点点。
无论如何我可以处理这种情况,所以我仍然会检测到它是相同的图像,即使其中一个被裁剪了一点?