gpt4 book ai didi

ruby - 比较两张图像,其中一张被稍微裁剪(缩放)

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:59 26 4
gpt4 key购买 nike

我使用 ruby​​ 的图像库 rmagick 来比较两个图像,以检测它们是否实际上是同一图像(避免重复)。

我通常采用的方式是使用 difference方法:

require 'rmagick'

img1.difference(img2)
#=> [238.738932291668, 0.001389172567175018, 0.0184313725490196]

上面的例子是两张肯定是一样的图片的输出。这曾经对我来说非常有效,直到我偶然发现一个新场景,这种方法不能很好地处理 - 如果图像相同(甚至大小相同),但其中一个已被裁剪,例如边框的 10px。现在突然之间,即使两张图片在人眼看来完全一样,但计算机会认为它们非常不同,因为其中一张图片被裁剪了一点点。

有没有办法处理这种情况,即使其中一张被裁剪了一点,我仍然会检测到它是同一张图片?

最佳答案

虽然您的示例图片可能看起来与人类非常相似,但原始图像数据看起来非常不同。

您需要一些更复杂的图像处理算法,它不比较原始数据,但对变换、缩放或旋转等操作具有不变性。

通常,我会建议您使用像 OpenCV 这样的计算机视觉库;它还有ruby bindings .你可能会看看所谓的 Image Momentsthis文档的一部分。归一化的中心矩 nu_ij 应该对平移和缩放不变;如果您为两张图像计算这些值并进行比较,您应该会得到与略微裁剪的图像几乎相同的值。

关于ruby - 比较两张图像,其中一张被稍微裁剪(缩放),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com