Python: как проверить сходство двух изображений, имеющих разную пикселизацию - PullRequest
0 голосов
/ 10 октября 2018

Я использую код Python для проверки сходства фотографий профилей пользователей Quora и Twitter, но я не получаю положительного результата, когда изображения одинаковы.

Это код для сравнения двух изображений:

path_photo_quora= "/home/yousuf/Desktop/quora_photo.jpg"
path_photo_twitter="/home/yousuf/Desktop/twitter_photo.jpeg"
if open(path_photo_quora,"rb").read() == open(path_photo_twitter,"rb").read():
     print('photos profile are identical')

несмотря на то, что изображения одинаковы, консоль не печатает "фотографии профиля идентичны", что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вы можете использовать библиотеку imagehash для сравнения похожих изображений.

from PIL import Image
import imagehash
hash0 = imagehash.average_hash(Image.open('quora_photo.jpg')) 
hash1 = imagehash.average_hash(Image.open('twitter_photo.jpeg')) 
cutoff = 5

if hash0 - hash1 < cutoff:
  print('images are similar')
else:
  print('images are not similar')

Поскольку изображения не совсем одинаковые, будут некоторые различия.Но imagehash будет работать, даже если изображения будут изменены, сжаты, в разных форматах файлов или с отрегулированным контрастом или цветами.

Хеш (или отпечаток пальца, на самом деле) получен из 8x8 монохромного эскиза изображения.Но даже при такой уменьшенной выборке сравнения подобия дают довольно точные результаты.Отрегулируйте отсечение, чтобы найти приемлемый баланс между ложными срабатываниями и ложными отрицаниями.

0 голосов
/ 10 октября 2018

Два изображения НЕ одинаковы - только изображение.Изображения, очевидно, разного размера, как вы сами отметили.Таким образом, сравнение должно завершиться неудачей.

Вам нужно будет использовать какую-то проверку сходства.Первым шагом является увеличение меньшего изображения до большего.Тогда вам нужно использовать некоторое средство обнаружения и определения сходства.Для этого есть разные способы и методы, и любая их комбинация может быть действительной.

Например, см. Проверка изображений на сходство с OpenCV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...