如果更改了分辨率,则查找相似图像
Find similar image if resolution was changed
如果存在 GIF 格式的网页横幅,我会使用 python 检查数百个网站。
我有一个包含 gif 文件的文件夹作为示例,我将每个网站的 gif 文件与我自己的示例文件进行比较。
我使用 filecmp,但我发现许多网站都压缩 gif 文件,因此即使文件在视觉上完全相同,filecmp 也不会检测到相同。
是否有任何 python 库来检测两个 gif 文件或视频是否相似,即使分辨率已更改?
比较两幅图像的相似性是一个常见的图像处理问题,因此您开发的解决方案可以简单也可以复杂,具体取决于您的意愿。在您的特定情况下,您需要一种使两个图像大小相同的方法和一种比较图像的方法。
首先,您可能需要将图像转换为 RGB 或灰度数组以进行比较。
我建议将较大图像的尺寸缩小为较小图像的尺寸。与增加较小图像的尺寸相比,这不太可能引入伪影。可以使用 Python Pillow 库来调整大小。
Image.resize(size, resample=None, box=None, reducing_gap=None)
https://pillow.readthedocs.io/en/stable/reference/Image.html
重采样方法可能对相似性度量有一些小的影响。但是,您可能只使用 resample = NEAREST 就好了。
确保图片大小相同后,必须进行比较。可以使用均方误差 (MSE) 或结构相似性 (SSIM) 来比较它们。幸运的是,SSIM 已经在 scikit-image 中实现了。
from skimage.metrics import structural_similarity as ssim
s = ssim(imageA, imageB)
对于您的情况,MSE 可能同样有效。但是,如果图像的平均亮度已被某种过程改变,您需要先从每张图像中减去它。
如果调整大小是唯一的问题,那应该就是了。但是,如果图像可能已被翻转、旋转或裁剪,则可能需要额外的步骤。
如果存在 GIF 格式的网页横幅,我会使用 python 检查数百个网站。
我有一个包含 gif 文件的文件夹作为示例,我将每个网站的 gif 文件与我自己的示例文件进行比较。
我使用 filecmp,但我发现许多网站都压缩 gif 文件,因此即使文件在视觉上完全相同,filecmp 也不会检测到相同。
是否有任何 python 库来检测两个 gif 文件或视频是否相似,即使分辨率已更改?
比较两幅图像的相似性是一个常见的图像处理问题,因此您开发的解决方案可以简单也可以复杂,具体取决于您的意愿。在您的特定情况下,您需要一种使两个图像大小相同的方法和一种比较图像的方法。
首先,您可能需要将图像转换为 RGB 或灰度数组以进行比较。
我建议将较大图像的尺寸缩小为较小图像的尺寸。与增加较小图像的尺寸相比,这不太可能引入伪影。可以使用 Python Pillow 库来调整大小。
Image.resize(size, resample=None, box=None, reducing_gap=None)
https://pillow.readthedocs.io/en/stable/reference/Image.html
重采样方法可能对相似性度量有一些小的影响。但是,您可能只使用 resample = NEAREST 就好了。
确保图片大小相同后,必须进行比较。可以使用均方误差 (MSE) 或结构相似性 (SSIM) 来比较它们。幸运的是,SSIM 已经在 scikit-image 中实现了。
from skimage.metrics import structural_similarity as ssim
s = ssim(imageA, imageB)
对于您的情况,MSE 可能同样有效。但是,如果图像的平均亮度已被某种过程改变,您需要先从每张图像中减去它。
如果调整大小是唯一的问题,那应该就是了。但是,如果图像可能已被翻转、旋转或裁剪,则可能需要额外的步骤。