使用PIL(Python Imaging Library)像素级比较两个图像

11

我需要一个函数来比较两个大小相同的PIL图片。我们称它们为A和B。结果应该是一张相同大小的新图片。如果像素在A和B中相同,则应将其设置为固定颜色(例如黑色),否则应将其设置为与B相同的颜色。

是否有库可以实现此功能而无需昂贵的循环遍历所有像素?

1个回答

20

我不确定其他库是否可以,但是您可以使用PIL来完成类似以下的操作...

from PIL import Image, ImageChops

point_table = ([0] + ([255] * 255))

def black_or_b(a, b):
    diff = ImageChops.difference(a, b)
    diff = diff.convert('L')
    diff = diff.point(point_table)
    new = diff.convert('RGB')
    new.paste(b, mask=diff)
    return new

a = Image.open('a.png')
b = Image.open('b.png')
c = black_or_b(a, b)
c.save('c.png')

非常感谢!我差点要自己用C语言写那部分代码了。 - Maarten
2
这是做什么的? - john k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接