[ РЕДАКТИРОВАТЬ # 1 OP: Оказывается, на этот вопрос довольно хорошо ответил создатель / сопровождающий exiftool Фил Харви в повторяющейся теме на форуме ExifTool ]
[ РЕДАКТИРОВАТЬ # 2 от OP: из ExifTool FAQ : ExifTool не гарантирует полное удаление метаданных из файла при попытке удалить все метаданные. Смотрите «Ограничения писателя».]
Я хотел бы найти на моих старых жестких дисках фотографии, которых нет на моем текущем резервном диске. Форматы включают в себя jpg, png, tif и т. Д., А также различные необработанные форматы (разные модели камер и производителей).
Меня интересует только уникальность самого изображения, а не уникальность из-за различий, скажем, в значениях тегов exif, наличии / отсутствии самого данного тега exif, встроенных миниатюр и т. Д.
Несмотря на то, что я не ожидаю обнаружить искажение / искажение данных между различными копиями идентичных изображений, я хотел бы обнаружить это, а также различия из-за изменения размера и изменения цвета.
[ Редактировать # 3 от OP: Для пояснения: допустим небольшой процент ложных срабатываний (файл считается уникальным, если это не так), а ложные отрицания крайне нежелательны (ошибочно считается, что файл является дубликатом). ]
Мой план состоит в том, чтобы определить уникальность на основе md5sums после удаления любых метаданных.
Как я могу удалить метаданные?
Хватит ли exiftool -all= <filename>
?
find $dir -type f -regextype posix-extended -regex ".*\.(jpg|png|<...>|cr2|raw|raf|orf)"
где <...>
означает кучу других суффиксов.
convert image.jpg - | md5sum
(ImageMagick) дают вам соответствующие суммы MD5.
file
не сможет обнаружить форматы изображений RAW иfind
будет работать только с расширениями (может быть полезно лучше описать, что у вас есть)