[ EDIT # 1 by OP: Il s'avère que cette question est très bien répondue par le créateur / mainteneur d'exiftool, Phil Harvey, dans un fil de discussion en double sur le forum ExifTool ]
[ EDIT # 2 by OP: De ExifTool FAQ : ExifTool n'est pas garanti de supprimer complètement les métadonnées d'un fichier lorsque vous essayez de supprimer toutes les métadonnées. Voir «Limitations de Writer».]
J'aimerais rechercher sur mes anciens disques durs des photos qui ne se trouvent pas sur mon lecteur de sauvegarde actuel. Les formats incluent jpg, png, tif, etc ..., ainsi que divers formats bruts (différents modèles et fabricants d'appareils photo).
Je ne m'intéresse qu'à l'unicité de l'image elle-même et non à l'unicité en raison des différences, par exemple, des valeurs des balises exif, de la présence / absence d'une balise exif donnée elle-même, des miniatures intégrées, etc.
Même si je ne m'attends pas à trouver de corruption / pourriture de données entre différentes copies d'images autrement identiques, j'aimerais détecter cela, ainsi que les différences dues au redimensionnement et aux changements de couleur.
[ Éditer n ° 3 par OP: pour clarification: un petit pourcentage de faux positifs est tolérable (un fichier est considéré comme unique lorsqu'il ne l'est pas) et les faux négatifs sont hautement indésirables (un fichier est conclu à tort comme étant un doublon). ]
Mon plan est d'identifier l'unicité basée sur les sommes md5 après avoir supprimé toutes les métadonnées.
Comment puis-je supprimer les métadonnées?
Sera exiftool -all= <filename>
suffisant?
find $dir -type f -regextype posix-extended -regex ".*\.(jpg|png|<...>|cr2|raw|raf|orf)"
où <...>
signifie un tas d'autres suffixes.
convert image.jpg - | md5sum
(ImageMagick) vous donnent les sommes MD5 appropriées.
file
ne découvrira pas les formats d'image RAW etfind
ne fonctionnera que sur les extensions (il peut être utile de mieux décrire ce que vous avez)