What can I use to find duplicate photos, including photos that have been resized?
Here is Solutions:
Add all the photos to your collection. In the menu, select Tools / Find duplicates. This will look for duplicates across your whole collection.
A command line tool. Pass all the images you want to compare on the command line.
In the menu, select File / Find duplicate. Drag and drop image files do the duplicates window. You can drop directories to add their contents recursively. For visual comparison of images, there are specific, non-default options on a drop-down menu. The "custom" level of similarity allows restricting pairings only to the highest degree of similarity, but it has to be set on Preferences as 99. Even then, it does not work perfectly at least for some kinds of images, like line-art. It unfortunately does not provide an automatic selection mechanism with rational criteria, such as resolution, date or whatever, the automatic selection seems to just randomly just pick the first image found as the reference to preserve. Deleting many images can be extremely slow, as it tries to update the result count at every delete.
All three of these tools find visual duplicates, not just files that are identical byte for byte.
fslint is a graphical program that can find duplicate files of any type by md5sum. If the images are not identical, they won’t be flagged as duplicates. The image below shows a bunch of duplicate pdf files in my Downloads directory:
You can change the advanced search parameters to search by file type and restrict yourself to images only. That’s done through changing the “extra find parameters” as
find command options. For example, here I am only looking for
*.jpg files (in the same path, only looking at my “Downloads” folder:
fdupes is an equivalent command-line based tool. Both are available in the repos.
You can use a command line tool called
fdupes to find duplicate files (see
man fdupes for more details). I don’t know of any way to find ‘duplicates’ that have been resized. A program that did this would require some sort of intelligent algorithm that analysed the image contents because when an image is resized, its data is changed so traditional duplicate finding methods would not work.
imgSeek can find duplicates as well as similar pictures (so it should be able to find resized photos and photos with different filenames and metadata) and even search photos based on a sketch. It is available in desktop and server versions.
I haven’t actually tried it myself, though.
dupeGuru Picture Edition works absolutely great, and is worth trying.
They have a Launchpad PPA,
dupeguru (new all-in-one package) or
dupeguru-pe (old picture edition package) can be installed from it using those commands:
sudo add-apt-repository ppa:hsoft/ppa sudo apt-get update sudo apt-get install dupeguru
Visipics is a free Windows application for that function, but works just fine on Linux, via wine, of course (It’s better than geeqie/gqview regarding the sorting of the duplicates (geeqie’s results are absolutely "un-sortable")).
You can tell it to auto-select the images based on criteria such as smaller file size, non-compressed type, lower resolution (it won’t do the opposite though, you’d need to do it manually, which wouldn’t be much better than doing it on geeqie, except that the selection doesn’t require holding Shift/Ctrl), and even prioritize folders (but the last priority is folder priority).
You must pay attention to symbolic links, though — it can "randomly" select to save a symbolic link to a file while deleting the actual file as a "copy". That’s a shame.
I’ve written this Python script to find visually similar images, and delete all but the largest one.
It uses findimagedupes internally, to find the duplicate images.
It can be invoked with the -d and -r options for your use-case which would:
- Not delete (the lower-sized visually-similar) files.
- Output a "dups.txt" file which would contain the duplicate (visually-similar to be precise) files.
Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂