[ EDYCJA nr 1 autorstwa OP: Okazuje się, że na dość dobre odpowiedzi twórca / opiekun exiftool Phil Harvey w duplikacie wątku na forum ExifTool ]
[ EDYCJA 2 przez OP: Z FAQ ExifTool : Nie gwarantuje się, że ExifTool całkowicie usunie metadane z pliku podczas próby usunięcia wszystkich metadanych. Zobacz „Ograniczenia pisarza”.]
Chciałbym przeszukać moje stare dyski twarde w poszukiwaniu zdjęć, których nie ma na bieżącym dysku z kopią zapasową. Formaty obejmują jpg, png, tif itp., A także różne surowe formaty (różne modele kamer i producentów).
Interesuje mnie tylko wyjątkowość samego obrazu, a nie wyjątkowość z powodu różnic, powiedzmy, wartości tagów exif, obecności / braku samego tagu exif, osadzonych miniatur itp.
Mimo że nie spodziewam się, że znajdę jakiekolwiek uszkodzenie / rotację danych między różnymi kopiami w przeciwnym razie identycznych obrazów, chciałbym to wykryć, a także różnice wynikające z zmiany rozmiaru i zmiany kolorów.
[ Edytuj nr 3 przez OP: Dla wyjaśnienia: niewielki odsetek fałszywych trafień jest dopuszczalny (plik jest uznawany za wyjątkowy, gdy nie jest), a fałszywe negatywy są wysoce niepożądane (plik jest błędnie uznawany za duplikat). ]
Mój plan polega na zidentyfikowaniu unikatowości na podstawie sum md5 po usunięciu wszystkich metadanych.
Jak mogę usunąć metadane?
Czy exiftool -all= <filename>
wystarczy?
find $dir -type f -regextype posix-extended -regex ".*\.(jpg|png|<...>|cr2|raw|raf|orf)"
gdzie <...>
oznacza kilka innych sufiksów.
convert image.jpg - | md5sum
(ImageMagick) dają odpowiednie sumy MD5.
file
nie uda się odkryć formatów obrazów RAW ifind
będzie działał tylko na rozszerzeniach (przydatne może być lepsze opisanie tego, co masz)