https://phash.org/
https://github.com/aetilius/pHash/blob/master/src/pHash.cpp:ph_dct_imagehash
Продолжаю оценивать применимость этой штуки в поиске дубликатов и схожих вариаций картинок.
Позволяет оценить непохожесть картинок по количеству отличающся бит в их хэшах, то бишь по расстоянию Хэмминга, popcnt(phash(A) ^ phash(B)).
По запросу "phash PHP" Google находит две штуки.
https://github.com/xwiz/phash/blob/master/phash.php Считает не phash, а ahash.
https://github.com/jenssegers/imagehash/blob/master/src/Implementations/PerceptualHash.php +- оригинальный алгоритм, но фиксированной длины.
PHP связка с libphash есть и в оригинальном проекте, но там файл-заметка EXPERIMENTAL в корне и файлы, судя по всему, не тронутые с 2013-ого. Да и libphash компилять надо, а у меня не скомпилялся, лол.
Какого-то стандарта, судя по всему, нет.
Мне было это дело интересно по-twick'ать, посмотреть на эффект от большей длины и посмотреть, насколько сложно это реализовать в JS, чтобы на сервер отправлять только готовый хэш. Написал своё.