Мои пользователи загружают изображения на мой сайт, и я хотел бы сначала предложить им уже загруженные изображения. Моя идея: 1. создать какой-то образ "хэш" любого существующего изображения 2. создайте хэш недавно загруженного изображения и сравните его с другим в базе данных
Я нашел несколько интересных решений, таких как http://www.pureftpd.org/project/libpuzzle или или http://phash.org/ и т.д., но они получили одну или несколько проблем.
- им нужно какое-то нестандартное расширение для PHP (или вообще не в PHP) - это было бы хорошо для меня, но я хотел бы создать его как плагин для моей популярной CMS, которая используется во многих средах хостинга без мой контроль.
- они сравнивают два изображения, но мне нужно сравнить их со многими (например, тысячами), и делать это один за другим будет очень неэффективным/медленным... ...
Я был бы в порядке, чтобы найти только ОЧЕНЬ похожие изображения (например, разный размер, сохраненный jpg или другой коэффициент сжатия jpg).
Единственная идея, которую я получил, - изменить размер изображения, например. 5px * 5px * 256 цветов, создайте строковое представление, а затем найдите то же самое. Но я предполагаю, что это может создать небольшие различия в цветах даже с двумя одинаковыми изображениями разного размера, поэтому найти только 100% то же самое было бы бесполезно.
Поэтому мне понадобится хороший формат этого строкового представления изображения, который может быть использован с некоторой функцией SQL, чтобы найти аналогичный или какой-либо другой хороший способ. Например. phash создает перцепционные хеши, поэтому, когда два числа близки, изображения также должны быть близкими, поэтому мне просто нужно найти самые близкие расстояния. Но это опять-таки внешняя библиотека.
Есть ли простой способ?