Итак, вот код, который я получил от https://rosettacode.org/wiki/Percentage_difference_between_images#C Кто-нибудь может объяснить, как это работает?
PS: я знаю основы PIL (например, open, save, filter, thumbnail и т.д .. .)
from PIL import Image
# python code for percentage difference between two images
def diff(image1, image2):
i1 = Image.open(image1)
i2 = Image.open(image2)
assert i1.mode == i2.mode, "Different kinds of images."
assert i1.size == i2.size, "Different sizes."
pairs = zip(i1.getdata(), i2.getdata())
if len(i1.getbands()) == 1:
dif = sum(abs(p1 - p2) for p1, p2 in pairs)
else:
dif = sum(abs(c1 - c2) for p1, p2 in pairs for c1, c2 in zip(p1, p2))
ncomponents = i1.size[0] * i1.size[1] * 3
print(f'DIFF {image1} and {image2} ==> {(dif / 255.0 * 100) / ncomponents}')
return (dif / 255.0 * 100) / ncomponents