PIL实现比较两个图片的不同(简单方法)

简单的处理:通过将图片每一个像素的RGB值提取出来,然后比较两个图片每一个像素的RGB值;该方法的问题是速度比较慢,需要消耗较大的空间;

from PIL import Image,ImageDraw

'''
思路:获取每个点像素值,
将两张图片同一位置的像素相减小于阀值,(颜色阈值:图像的转换是比较像素的过程,在比较两个像素时,如果RGB的颜色值
的差异小于颜色阈值,则可以认为这两个像素是相同的颜色,因此,颜色阈值越高,则颜色数量越少.)
得到位置对位置进行标记
'''


def compete_pix(im0, im1, i, j):
    pix_im0 = im0.getpixel((i, j))
    pix_im1 = im1.getpixel((i, j))
    x=-1
    y=-1
    # 定义阀值
    threshold = 60
    if abs(pix_im0[0] - pix_im1[0]) < threshold and abs(pix_im0[1] - pix_im1[1]) < threshold and abs(
        pix_im0[2] - pix_im1[2]) < threshold:
        return x,y
    else:
        x=i
        y=j
        return x,y


def main():
    im0 = Image.open('0.jpg')
    im1 = Image.open('1.jpg')
    im2=im1.copy()
    draw=ImageDraw.Draw(im2)

    # 对每一个的像素进行比较(RGB)
    for i in range(im0.size[0]):
        for j in range(im0.size[1]):
            x,y=compete_pix(im0, im1, i, j)
            #对图片进行绘制
            if x and y:
                draw.point((x,y),fill=(0,255,0))
    im2.show()

def text():

    im1 = Image.open('1.jpg')
    im2 = im1.copy()
    draw = ImageDraw.Draw(im1)



if __name__ == '__main__':
    text()
    main()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值