Сравнивая много изображений с одним - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно сравнить много изображений в базе данных с одним и отметить его, если они равны.У меня есть две идеи для решения этой проблемы:

  1. Получить хэш обоих изображений (MD5) и сравнить их хеши.Этот метод позволяет вычислять хэш-изображение эталона только один раз.
  2. Сравнить все изображения с эталоном попиксельное.

Какой метод будет быстрее?Сравнивать все пиксели или вычислять хеш для всех изображений в базе данных?

1 Ответ

0 голосов
/ 13 ноября 2018

Это просто зависит от того, как часто вы хотите сравнивать изображение с БД.

Если вам нужно сделать это только один или два раза, перейдите к пиксельному сравнению.потому что для создания всех хеш-значений вам также необходимо прочитать все пиксели всех изображений один раз.

Если вам часто нужно это делать, используйте хэш-подход.Конечно, вам нужно сравнивать изображения с одинаковым хеш-значением попиксельно, но это намного меньше, чем у всех изображений.(Вы можете даже сохранить все хеш-значения в ОЗУ, если ваша БД не слишком большая)

Вам не нужно использовать md5.Вы могли бы даже пойти на гораздо более простые (и более быстрые для вычисления) хеш-функции.(Вам не нужны функции, необходимые для криптографических хеш-функций, таких как md5 (даже если md5 больше не является безопасным)).Вы просто хотите уменьшить количество изображений для сравнения пиксель за пикселем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...