python比较两张图片是否一样,使用PIL(Python成像库)按像素比较两个图像

该博客介绍了一个使用Python的PIL库来比较两个相同尺寸的图像的方法。通过计算像素差异,将相同像素设置为固定颜色(如黑色),不同像素保留B图像的颜色,最后生成一个新的图像。这个过程避免了昂贵的逐像素遍历操作。
摘要由CSDN通过智能技术生成

I need a function which compares two PIL images of the same size. Let's call them A and B. The result is supposed to be a new image of the same size. If a pixels is the same in both A and B it's supposed to be set to a fixed color (e.g. black), otherwise it's supposed to be set to the same color as B.

Is there a library for implementing this functionality without an expensive loop over all pixels?

解决方案

Not sure about other libraries, but you can do this with PIL, with something like...

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')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值