Фильтрация похожих изображений применением перцептивного хеширования
    Project
    Генерация хеша
    Project
    Поиск похожих изображений
    Project
    Перемещение похожих изображений в другую папку (правая колонка), оставлены только уникальные (левая)
    Project
    Порог чувствительности 2% (перемещены почти идентичные изображения)
    Project
    Порог чувствительности 33% (175 изображений из 186 были перемещены, остались только уникальные)
    Описание
  • Небольшой скрипт на Python + OpenCV с предпросмотром процесса фильтрации изображений
  • Перемещает все похожие изображения или их дубликаты из выбранной директории
  • Пользователь задает путь к папке с изображениями, папку для перемещения, размер хеша и коэффициент чувствительности (от 0 до 100, где 0 - абсолютная схожесть изображений, только дубликаты будут перемещены)
  • Алгоритм
  • Сжатие изображения до размера NxN пикселей
  • Конвертация пикселей в черно-белый
  • Расчет среднего значения цвета всех пикселей
  • Создание нового изображения (хеш): если значение цвета пикселя превышает среднее, то делаем его белым, в противном случае - черным
  • Сравнение хешей всех изображений используя расстояние Хэмминга
  • Изображения считаются схожими и перемещаются из указанной папки, если разница между количеством одинаковых пикселей не превышает порог чувствительности, заданный пользователем