如果分辨率改变了,找到相似的图像



我使用python来检查数百个网站是否存在GIF格式的网页横幅。我有一个文件夹与gif文件为例,我比较从每个网站的gif文件与我自己的例子文件。我使用filecmp,但我发现许多网站压缩gif文件,所以即使文件在视觉上相同,filecmp也不会检测到相同。
是否有任何python库来检测是否两个gif文件或vídeos是相似的,即使resolución已经改变?

比较两个图像的相似性是一个一般的图像处理问题,因此您开发的解决方案可以像您想要的那样简单或复杂。在您的特定情况下,您将需要一种方法来使两个图像的大小相同,并需要一种方法来比较图像。

首先,您可能想要将图像转换为RGB或灰度数组进行比较。

我建议将大图像的大小缩小到小图像的大小。这比增加小图像的大小更不可能引入伪影。可以使用Python Pillow库来调整大小。

Image.resize(size, resample=None, box=None, reducing_gap=None)

https://pillow.readthedocs.io/en/stable/reference/Image.html

重采样方法可能对相似性度量有一些小的影响。但是,您可能只使用ressample = NEAREST就可以了。

在确定图像大小相同后,必须对它们进行比较。人们可以使用均方误差(MSE)或结构相似性(SSIM)来比较它们。幸运的是,SSIM已经在scikit-image中实现了。

from skimage.metrics import structural_similarity as ssim
s = ssim(imageA, imageB)

https://www.pyimagesearch.com/2014/09/15/python -比较-两个images/?_ga=2.129476107.608689084.1632687977 - 376301729.1627364626

在您的情况下,MSE可能同样有效。但是,如果图像的平均亮度被某种过程改变了,那么首先要从每个图像中减去它。

如果调整大小是唯一的问题,应该是它。但是,如果图像可能已经被翻转、旋转或裁剪,则可能需要额外的步骤。

最新更新