#python #opencv #image-processing #imagemagick #image-comparison
#python #opencv #обработка изображений #imagemagick #сравнение изображений
Вопрос:
- числовая разница ожидается как положительная или отрицательная с десятичными знаками
- сравните внешний вид каждого изображения, а не их двоичное содержимое
например:
file1.png amp; file2.gif
разница 0.23
прошедшее время 0.843
Я пытался
from PIL import Image
from PIL import ImageChops
...
one = Image.open("file1.png")
two = Image.open("file2.gif")
diff = ImageChops.difference(one, two)
print(diff)
Но ImageChops
не работает для сравнения файлов .gif и .png. Ошибка
python3.8/site-packages/PIL/ImageChops.py", line 102, in difference
return image1._new(image1.im.chop_difference(image2.im))
ValueError: images do not match
Будет imagemagick
или numpy
будет работать? должен поддерживать .png, .gif (.jpg, .bmp являются необязательными)
Комментарии:
1. Вы уверены, что ошибка связана с разными форматами файлов? Или может быть, что изображения имеют разный размер или используют другой формат цвета или одну из многих других возможных проблем?
2. Попробуйте запустить
print(one.format, one.size, one.mode)
и то же самое для второго изображения.3. попробуйте cv2.matchTemplate()
Ответ №1:
Попробуйте распечатать режимы изображений.
print(one.mode)
print(two.mode)
Если эти два режима != не равны друг другу, то он может взорваться, как вы видите.