Как лучше всего сравнивать два изображения с помощью php и библиотеки Graphic Draw (GD) Library??
Это сценарий:
У меня есть изображение, и я хочу найти, какое изображение из данного набора наиболее похоже на него. Наиболее похожее изображение - это фактически одно и то же изображение, но не с точным совпадением пикселей, а с тем же изображением. Я драматизировал разницу между двумя изображениями с помощью номера один в примере, чтобы облегчить понимание того, что я имел в виду.
Несмотря на то, что это не дало последовательных результатов, мой подход заключался в уменьшении изображений до 1 пикселя с помощью imagecopyresampled и посмотрите, насколько близки значения RGB между изображениями.
Сумма значений вычитания каждого десятичного эквивалента красного, зеленого и синего десятичного эквивалента из красного, зеленого и синего десятичного эквивалента возможного совпадения дала мне индекс несходства, который, несмотря на то, что он не работал должным образом, поскольку не всегда изображение, наиболее похожее на RGB, было целевым изображением, я мог использовать его для выбора изображения из доступных целей.
Вот пример вывода при сравнении 4 изображений с целевым изображением, в данном случае логотипом яблока, который соответствует одному из них, но не совсем то же самое:
Исходное изображение:
Красный: 222 Зеленый: 226 Синий: 232
По сравнению с:
http://a1.twimg.com/profile_images/571171388/logo-twitter_normal.png Красный: 183 Зеленый: 212 Синий: 212, индекс подобия 56
Красный: 117 Зеленый: 028 Синий: 028 и индекс несходства 530
Красный: 218 Зеленый: 221 Синий: 221 и индекс несходства 13 Соответствует правильно.
Красный: 061 Зеленый: 063 Синий: 063 и индекс несходство 491
Может быть, даже не получится лучше с лучшими результатами, чем то, что я уже получаю, и я зря трачу здесь свое время, но, поскольку, похоже, есть много опытных программистов php, я думаю, вы можете указать мне правильные направления относительно того, как улучшить это.
Я открыт для других библиотек изображений, таких как iMagick, Gmagick или Cairo для php, но я бы предпочел избегать использования других языков, кроме php.
Заранее спасибо.