[ EDITAR # 1 por OP: Resulta que esta pregunta está bastante bien respondida por el creador / mantenedor de exiftool Phil Harvey en un hilo duplicado en el foro de ExifTool ]
[ EDITAR # 2 por OP: De ExifTool Preguntas frecuentes : No se garantiza que ExifTool elimine completamente los metadatos de un archivo al intentar eliminar todos los metadatos. Ver "Limitaciones del escritor".]
Me gustaría buscar en mis viejos discos duros fotos que no estén en mi disco de respaldo actual. Los formatos incluyen jpg, png, tif, etc., así como varios formatos sin formato (diferentes modelos y fabricantes de cámaras).
Solo estoy interesado en la unicidad de la imagen en sí y no en la unicidad debido a las diferencias en, por ejemplo, los valores de las etiquetas exif, la presencia / ausencia de una etiqueta exif en sí misma, miniaturas incrustadas, etc.
Aunque no espero encontrar ninguna corrupción / podredumbre de datos entre diferentes copias de imágenes idénticas, me gustaría detectar eso, así como las diferencias debido al cambio de tamaño y los cambios de color.
[ Editar # 3 por OP: Para aclarar: un pequeño porcentaje de falsos positivos es tolerable (se concluye que un archivo es único cuando no lo es) y los falsos negativos son altamente indeseables (se concluye erróneamente que un archivo es un duplicado). ]
Mi plan es identificar la unicidad basada en md5sums después de eliminar todos y cada uno de los metadatos.
¿Cómo puedo quitar los metadatos?
Será exiftool -all= <filename>
suficiente?
find $dir -type f -regextype posix-extended -regex ".*\.(jpg|png|<...>|cr2|raw|raf|orf)"
where <...>
significa un montón de otros sufijos.
convert image.jpg - | md5sum
(ImageMagick) le dan sumas MD5 apropiadas.
file
no podrá descubrir formatos de imagen RAW yfind
solo funcionará en extensiones (puede ser útil describir mejor lo que tiene)