Возвращена неправильная разница между двумя объектами pixelaccess - PullRequest
1 голос
/ 31 марта 2020

Итак, у меня есть функция, которая принимает в качестве параметров два 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 не является моим основным языком повседневной жизни.

Заранее спасибо.

...