Как я могу найти дубликаты фотографий?
Что я могу использовать, чтобы найти дубликаты фотографий, включая фотографии, размер которых был изменен?
6 ответов
Digikam 
Добавьте все фотографии в вашу коллекцию. В меню выберите "Инструменты / Найти дубликаты". Это будет искать дубликаты по всей вашей коллекции.
findimagedupes 
Инструмент командной строки. Передайте все изображения, которые вы хотите сравнить, в командной строке.
Geeqie (ранее GQview) 
В меню выберите "Файл / Найти дубликат". Перетащите файлы изображений сделать окно дубликатов. Вы можете удалить каталоги, чтобы добавить их содержимое рекурсивно. Для визуального сравнения изображений в раскрывающемся меню есть определенные параметры, отличные от заданных по умолчанию. "Настраиваемый" уровень сходства позволяет ограничивать пары только наивысшей степенью сходства, но он должен быть установлен на "Предпочтения" как 99. Даже в этом случае он не работает идеально, по крайней мере, для некоторых видов изображений, таких как линейные Изобразительное искусство. К сожалению, он не предоставляет механизм автоматического выбора с рациональными критериями, такими как разрешение, дата или что-то еще, автоматический выбор, кажется, просто случайным образом выбирает первое найденное изображение в качестве ссылки для сохранения. Удаление многих изображений может быть очень медленным, так как он пытается обновить счетчик результатов при каждом удалении.
Все три из этих инструментов находят визуальные дубликаты, а не только файлы, идентичные байты за байтом.
FSlint 
fslint
это графическая программа, которая может найти дубликаты файлов любого типа по md5sum. Если изображения не идентичны, они не будут помечены как дубликаты. На изображении ниже показана куча дубликатов PDF-файлов в моем каталоге загрузок:
Вы можете изменить параметры расширенного поиска для поиска по типу файла и ограничиться только изображениями. Это делается путем изменения "дополнительных параметров поиска" как find
параметры команды. Например, здесь я ищу только *.jpg
файлы (по тому же пути, только глядя на мою папку "Загрузки":
fdupes 
fdupes
является эквивалентным инструментом на основе командной строки. Оба доступны в репозиториях.
fdupes 
Вы можете использовать инструмент командной строки под названием fdupes
найти дубликаты файлов (см. man fdupes
Больше подробностей). Я не знаю ни одного способа найти "дубликаты", размеры которых были изменены. Программа, которая сделала это, потребовала бы своего рода интеллектуального алгоритма, который анализировал содержание изображения, потому что, когда размер изображения изменяется, его данные изменяются, поэтому традиционные методы поиска дубликатов не будут работать.
imgSeek
imgSeek может найти дубликаты, а также похожие изображения (поэтому он должен иметь возможность находить фотографии и фотографии с измененными размерами с разными именами файлов и метаданными) и даже искать фотографии на основе эскиза. Он доступен в настольной и серверной версиях.
Я на самом деле не пробовал сам, хотя.
dupeGuru Picture Edition работает абсолютно отлично, и стоит попробовать.
У них есть Launchpad PPA, dupeguru
(новый пакет "все в одном") или dupeguru-pe
(старый пакет редакции рисунков) можно установить из него с помощью следующих команд:
sudo add-apt-repository ppa:hsoft/ppa
sudo apt-get update
sudo apt-get install dupeguru
Я написал этот скрипт Python, чтобы найти визуально похожие изображения и удалить все, кроме самого большого.
Он внутренне использует findimagedupes, чтобы найти повторяющиеся изображения.
Его можно вызвать с помощью параметров -d и -r для вашего варианта использования, которые:
- Не удалять файлы (визуально похожие меньшего размера).
- Выведите файл "dups.txt", который будет содержать дубликаты (точнее, визуально похожие).
VisiPics
Visipics - это бесплатное приложение для Windows для этой функции, но оно прекрасно работает в Linux, конечно, через Wine (это лучше, чем geeqie/gqview в отношении сортировки дубликатов (результаты geeqie абсолютно "не сортируются")).
Вы можете сказать ему, чтобы автоматически выбирать изображения на основе таких критериев, как меньший размер файла, несжатый тип, низкое разрешение (хотя это не будет наоборот, вам нужно будет сделать это вручную, что не будет гораздо лучше, чем делать это в Geeqie, за исключением того, что выделение не требует удержания Shift/Ctrl), и даже приоритезировать папки (но последний приоритет - приоритет папки).
Вы должны обратить внимание на символические ссылки, хотя - он может "случайным образом" выбрать, чтобы сохранить символическую ссылку на файл при удалении фактического файла в качестве "копии". Это позор.