Итак, у меня есть функция, которая принимает в качестве параметров два PixelAccess объекта, которые по сути являются двумя изображениями, которые преобразуются в многомерный массив пикселей типа (image1pixels [x, y]), а затем он вычитает каждый набор пикселей по ширине и высоте обоих изображений, а затем добавляет вычитания пикселей в массив с именем c
; Затем функция возвращает сумму всех кортежей в массиве.
Вот функция:
def difference(pix1, pix2):
size = width, height = img.size;
result = 0;
array = [];
for x in range(width):
for y in range(height):
c = tuple(map(sub, pix2[x, y], pix1[x, y]));
array.append(c);
result = abs(add(map(sum, array)));
return result;
Здесь, чтобы понять, когда я печатаю c
, вот что печатается:
(0, 0, 0)
(0, 0, 0)
(0, 0, 0)
(-253, -253, -253)
(-210, -210, -210)
(-168, -168, -168)
(-147, -147, -147)
(-48, -48, -48)
(-13, -13, -13)
(-29, -29, -29)
(-48, -48, -48)
(-48, -48, -48)
(0, 0, 0)
(0, 0, 0)
(0, 0, 0)
Я должен сравнить два изображения, используя эту функцию, ожидаемая разница должна быть 17988
, но моя функция возвращает 9174
.
Я просто хочу знать, если мой лог c неверен или если я здесь неправильно пишу, зная, python не является моим основным языком повседневной жизни.
Заранее спасибо.