Найти похожие изображения в (чистом )PHP/MySQL

Мои пользователи загружают изображения на мой веб-сайт, и я хотел бы сначала предложить им уже загруженные изображения. Моя идея состоит в том, чтобы 1. создать своего рода "хэш" изображения каждого существующего изображения 2. создать хэш вновь загруженного изображения и сравнить его с другим в базе данных

я нашел несколько интересных решений, таких какhttp://www.pureftpd.org/project/libpuzzleили илиhttp://phash.org/и т. д., но у них есть одна или несколько проблем

  1. им нужно какое-то нестандартное расширение для PHP (или их вообще нет в PHP)-для меня это было бы нормально, но я хотел бы создать его как плагин к моей популярной CMS, которая используется на многих хостингах без моего контроля.
  2. они сравнивают два изображения, но мне нужно сравнить одно со многими (, например. тысяч )и делать это по одному было бы очень неэффективно/медленно......

Я был бы в порядке, если бы нашел только ОЧЕНЬ похожие изображения (, так что, например. другой размер, пересохраненный jpg или другой коэффициент сжатия jpg ).

Единственная идея, которую я получил, это изменить размер изображения, например. 5px *5px *256 цветов, создайте его строковое представление, а затем найдите то же самое. Но я предполагаю, что это могло создать крошечные различия в цветах даже с двумя одинаковыми изображениями разного размера, поэтому найти только 100% одно и то же было бы бесполезно.

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

Есть ли простой способ?

21
задан Glorfindel 28 April 2017 в 07:00
поделиться