Windows下Python的图像比较

0 投票
2 回答
763 浏览
提问于 2025-04-17 12:03

我想用Python写一个程序,比较两张图片。我已经有一部分代码可以获取图片文件,现在只需要找到一种方法,把这两张图片拿来比较一下,看看这两张.png格式的图片有没有什么不同。

我尝试使用PIL这个库,但在我的程序中遇到了一些问题,出现了一个错误,提示说没有安装_imaging C模块。

这其实不是一个很复杂的任务,但如果有人能给我一个起步的建议,或者帮我解决PIL的问题,那就太好了。

2 个回答

0

你想要比较图片的什么呢?是大小?还是一些元数据之类的?如果你想确认它们是否完全相同(比如创建日期、大小、内容等等),我建议你可以获取每张图片的MD5哈希值,然后比较这些哈希值。具体要比较到什么程度,完全取决于你的需求。可以看看这里:

用Python/Linux的方式比较两张图片

0

你可以使用 PIL 模块轻松创建一个比较图片的函数:

from PIL import Image

def compare_images(image_file1, image_file2):
    im1 = Image.open(image_file1)
    im2 = Image.open(image_file2)
    if im1.size != im2.size:
        return False
    width, height = im1.size
    im_access1 = im1.load()
    im_access2 = im2.load()
    for i in xrange(height):
        for j in xrange(width):
            if im_access1[i,j] != im_access2[i,j]:
                return False
    return True

当然,首先你得让 PIL 模块正常工作。

撰写回答