Как сравнить изображения на PHP
Разберем задачу на примере: необходимо скриптом пройтись по папке с изображениями и сравнить изображения в ней с искомым.
Используем класс расчета перцептивного хеша для изображений на PHP: https://github.com/jenssegers/imagehash
Перцептивные хэш-алгоритмы описывают класс функций для генерации сравнимых хэшей. Характеристики изображения используются для генерации индивидуального (но не уникального) отпечатка, и эти отпечатки можно сравнивать друг с другом.
Откроем папку с изображениями функцией "opendir()" , сохраним результат этой функции в переменную $handle.
В цикле while откроем каждый файл директории функцией "readdir($handle)"
Вычислим файлу перцептивный хеш. Сохраним в массив.
После определения искомого изображения, продемся по всем элементам массива и вычислим разницу методом distance:
$hasher->distance($arr['hash1'], $arr['hash2'])
тот элемент разница которого меньше всех и будет являться самым похожим на искомое изображение.
пример: https://bestwaypractice.ru/pets/1/
Leave a reply