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