[ EDIT # 1 của OP: Hóa ra câu hỏi này được trả lời khá tốt bởi người tạo / bảo trì exiftool Phil Harvey trong một chủ đề trùng lặp trên Diễn đàn ExifTool ]
[ EDIT # 2 bởi OP: Từ ExifTool FAQ : ExifTool không được bảo đảm để xóa hoàn toàn siêu dữ liệu khỏi tệp khi cố gắng xóa tất cả siêu dữ liệu. Xem 'Giới hạn nhà văn'.]
Tôi muốn tìm kiếm các ổ đĩa cứng cũ của tôi để tìm những bức ảnh không có trên ổ đĩa sao lưu hiện tại của tôi. Các định dạng bao gồm jpg, png, tif, v.v ..., cũng như các định dạng thô khác nhau (các kiểu máy ảnh và nhà sản xuất khác nhau).
Tôi chỉ quan tâm đến tính độc đáo của hình ảnh chứ không phải tính duy nhất do sự khác biệt trong các giá trị của thẻ exif, sự hiện diện / vắng mặt của chính thẻ exif đã cho, hình thu nhỏ được nhúng, v.v ...
Mặc dù tôi không mong muốn tìm thấy bất kỳ sự hỏng hóc / dữ liệu nào giữa các bản sao khác nhau của các hình ảnh giống hệt nhau, tôi muốn phát hiện ra điều đó, cũng như sự khác biệt do thay đổi kích thước và thay đổi màu sắc.
[ Chỉnh sửa # 3 bởi OP: Để làm rõ: Một tỷ lệ nhỏ dương tính giả có thể chấp nhận được (một tệp được kết luận là duy nhất khi không) và các phủ định sai rất không mong muốn (một tệp bị kết luận sai là trùng lặp). ]
Kế hoạch của tôi là xác định tính duy nhất dựa trên md5sums sau khi tước bất kỳ và tất cả siêu dữ liệu.
Làm cách nào để loại bỏ siêu dữ liệu?
Sẽ exiftool -all= <filename>
đủ?
find $dir -type f -regextype posix-extended -regex ".*\.(jpg|png|<...>|cr2|raw|raf|orf)"
nơi <...>
có nghĩa là aa loạt các hậu tố khác.
convert image.jpg - | md5sum
(ImageMagick) cung cấp cho bạn số tiền MD5 phù hợp.
file
sẽ không thể khám phá các định dạng hình ảnh RAW vàfind
sẽ chỉ hoạt động trên các tiện ích mở rộng (có thể hữu ích để mô tả tốt hơn những gì bạn có)