查找两个RGB类似图像之间的差异

时间:2018-07-15 03:56:16

标签: python-imaging-library

我有两个RGB图像,想找到两者之间的区别。

不同的像素应为红色,相同的像素应为灰度。

我尝试使用PIL,但无法获得所需的结果。

1 个答案:

答案 0 :(得分:0)

您正在使用像素访问权限-https://pillow.readthedocs.io/en/5.2.x/reference/PixelAccess.html#pixelaccess-class。这样,您就可以读写图像中的单个像素。

我假设两个图像的大小相同。我使用了一种简单的方法将相关像素转换为灰度-平均R,G,B值。

from PIL import Image

px1 = im1.load()
px2 = im2.load()
imOut = Image.new('RGB', im1.size)
pxOut = imOut.load()
for x in range(0, im1.width):
    for y in range(0, im1.height):
        if px1[x, y] == px2[x, y]:
            r, g, b = px1[x, y]
            grayscale = int((r + g + b) / 3)
            pxOut[x, y] = (grayscale, grayscale, grayscale)
        else:
            pxOut[x, y] = (255, 0, 0)
imOut.show()