A
A
Andrey Andreevich2022-01-15 12:43:59
JavaScript
Andrey Andreevich, 2022-01-15 12:43:59

How to compare two pictures pixel by pixel?

How to compare two pictures of the same extension pixel by pixel, find out how many pixels differ?

Answer the question

In order to leave comments, you need to log in

4 answer(s)
S
Sergey, 2015-10-28
Protko @Fesor

and now we carefully look where you put onkeyup.

H
holfza, 2015-10-28
@holfza

jsfiddle.net/yz4ej8c0/2

S
Sergey Karbivnichy, 2022-01-15
@ALVOK

I must say right away that I am not friends with graphics and algorithms. In a couple of minutes I posted an example:
pip install Pillow

from PIL import Image


img1 = Image.open('1.png') # Открываем первое изображение
im1 = img1.load() # Загружаем первое изображение для доступа к пикселям

img2 = Image.open('2.png') # Открываем второе изображение
im2 = img2.load() # Загружаем второе изображение для доступа к пикселям

i = 0 # Счетчик пикселей, которые не совпадают

if (img1.size == img2.size): # Проверяем, что размер изображений совпадают
  x1,y1 = img1.size # Через атрибут size получаем кортеж с двумя элементами (размер изображения по x и y)

  # Проходимся последовательно по каждому пикселю картинок
  for x in range(0,x1):
    for y in range(0,y1):
      if im1[x,y] != im2[x,y]: # Если пиксель первой картинки по координатах [x,y] не совпадает
        # с пикселем второй картинки по координатах [x,y], тогда:
        i = i + 1 # Увеличиваем счетчик на 1
        print(f'Координаты: x={x}, y={y} Изображение 1={im1[x,y]} - Изображение 2={im2[x,y]}')
  print(f"Количество разных пикселей: {i}")
else:
  print("Размер изображений не совпадают!")

Conclusion:
Координаты: x=2, y=1 Изображение 1=(255, 0, 0) - Изображение 2=(255, 255, 255)
Количество разных пикселей: 1

D
Dr. Bacon, 2022-01-15
@bacon

Take the first pixel from one picture, take the first pixel from the second picture, compare them, repeat this for all pixels. What is the problem?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question