@maryaTurova

Как преобразовать из файла в ImageHash?

Для поиска похожих картинок все хеши сохранил в файл txt этим кодом:
import imagehash
import os

for root, dirs, files in os.walk('main-img/1'):
    for name in files:
        patch_file = os.path.join(root, name)
        hash_img = imagehash.phash(Image.open(patch_file))
        with open('imagehash.txt', 'a', encoding='utf-8') as f:
            f.write(str(hash_img)+'\n')

далее следовало бы проверить отдельно взятую картинку по этой базе и определить разницу хешей:
import imagehash
import os

hash_img = imagehash.phash(Image.open('1.png'))         
with open('imagehash.txt') as f:
    for line in f:
        score = hash_img - line
        if score < 2:
            print("est stroka="+line)

Но естественно ошибка по типу.
Подскажите как правильно преобразовать строку в хеш?
Или тыкните , что не так?
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
@GeneD88
QA
Переводите строку в hex, например: hex(int(line, 16))

Затем используйте метод из imagehash - hex_to_hash

Получится: score = hash_img - hex_to_hash(hex(int(line, 16)))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы