我使用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可能同样有效。但是,如果图像的平均亮度被某种过程改变了,那么首先要从每个图像中减去它。
如果调整大小是唯一的问题,应该是它。但是,如果图像可能已经被翻转、旋转或裁剪,则可能需要额外的步骤。