|
from PIL import Image |
|
|
|
def diffimage(name1, name2, colour="RGB"): |
|
img1 = Image.open(name1).convert(colour) |
|
img2 = Image.open(name2).convert(colour) |
|
new_image = Image.new(colour, (img1.size[0], img1.size[1]), color=(255,255,255)) |
|
color_image = Image.new(colour, (img1.size[0], img1.size[1]), color=(255,255,255)) |
|
|
|
for i in range(img1.size[0]): |
|
for j in range(img1.size[1]): |
|
if (img1.getpixel((i,j)) != img2.getpixel((i,j))): |
|
i1 = img1.getpixel((i,j)) |
|
i2 = img2.getpixel((i,j)) |
|
new_image.putpixel((i, j), tuple([i1[0]-i2[0],i1[1]-i2[1],i1[2]-i2[2]])) |
|
|
|
if 0 <= i1[0]-i2[0] < 0: |
|
color_image.putpixel((i, j), (0,255,255)) |
|
if 1 <= i1[0]-i2[0] < 2: |
|
color_image.putpixel((i, j), (255,50,0)) |
|
if 2 <= i1[0]-i2[0] < 3: |
|
color_image.putpixel((i, j), (255,100,0)) |
|
if i1[0]-i2[0] > 3: |
|
color_image.putpixel((i, j), (255,0,0)) |
|
if 0 <= i1[1]-i2[1] < 1: |
|
color_image.putpixel((i, j), (0,255,0)) |
|
if 1 <= i1[1]-i2[1] < 2: |
|
color_image.putpixel((i, j), (0,255,50)) |
|
if 2 <= i1[1]-i2[1] < 3: |
|
color_image.putpixel((i, j), (0,255,100)) |
|
if i1[1]-i2[1] > 3: |
|
color_image.putpixel((i, j), (255,51,255)) |
|
if 0 <= i1[2]-i2[2] < 1: |
|
color_image.putpixel((i, j), (0,0,255)) |
|
if 1 <= i1[2]-i2[2] < 2: |
|
color_image.putpixel((i, j), (50,0,255)) |
|
if 2 <= i1[2]-i2[2] < 3: |
|
color_image.putpixel((i, j), (100,0,255)) |
|
if i1[2]-i2[2] > 3: |
|
color_image.putpixel((i, j), (51,255,51)) |
|
|
|
|
|
new_image.save(f"diff_for_{name1[7:-4]}_and_{name2[12:-4]}.png") |
|
color_image.save(f"colordiff_for_{name1[7:-4]}_and_{name2[12:-4]}.png") |
|
|
|
name1 = "60.jpg" |
|
name2 = "60wm.jpg" |
|
|
|
diffimage(name1, name2) |