Как сравнить изображения на PHP

Разберем задачу на примере: необходимо скриптом пройтись по папке с изображениями и сравнить изображения в ней с искомым.

Используем класс расчета перцептивного хеша для изображений на PHP: https://github.com/jenssegers/imagehash

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

Откроем папку с изображениями функцией "opendir()" , сохраним результат этой функции в переменную $handle.

В цикле while откроем каждый файл директории функцией "readdir($handle)"

Вычислим файлу перцептивный хеш. Сохраним в массив.

После определения искомого изображения, продемся по всем элементам массива и вычислим разницу методом distance:

distance($arr['hash1'], $arr['hash2'])

тот элемент разница которого меньше всех и будет являться самым похожим на искомое изображение.

пример: https://bestwaypractice.ru/pets/1/
Афоризм дня:
Книги обладают способностью бессмертия. Они самые долговечные плоды человеческой деятельности. (660)

Leave a reply