Linux поиск одинаковых картинок

Поиск одинаковых изображений

Всем привет. Есть сотня-другая jpeg-картинок 150×150, которые нужно сопоставить, и найти одинаковые.

Дело в том, что они не совсем одинаковые, где-то всё изображение смещено на какое-то количество пикселей в сторону, где-то есть просто белый пиксель посередине, в общем на всех картинках есть небольшое количество неприметных для глаза различий, поэтому по хэшу например их не сопоставить. Есть какая-нибудь готовая библиотека, на opencv, например, которая могла бы сопоставлять почти-одинаковые изображения?

Всем заранее спасибо.

Скорее всего, это делается через Фурье или какие-то другие интегральные преобразования

SSIM/DSSIM, но вот если не ясно насколько пикселей смещены — то тогда не знаю, разве что поиск вектора движения на основе разности яркости

Если бы я знал что картинка только смещена по пикселям куда-то, то можно было бы не париться, и брутфорсом подобрать, поскольку opencv я не знаю. 🙂 Но дело там не только в смещении.

нашёл такое вот, вроде то. Попробую, спасибо.

Если тебе на один раз, то можно взять любой просмотрщик, который умеет в поиск похожих дубликатов. Xnviewmp, например, он вроде есть под онтопик.

поэтому по хэшу например их не сопоставить

Самый простой, но хорошо работающий способ:

1. Масштабируем картинку в 8×8
2. Переводим в grayscale
3. Считаем среднее значение яркости и всё, что больше переводим в 1, меньше — в 0
4. Рассматриваем полученные данные как число 8×8 = 64 бит.

Это готовый хеш, который не зависит от обесцвечивания и мелкого изменения пикселей и который можно использовать как индекс при группировке.

Ложные срабатывания будут, но не очень много.

Источник

Есть ли способ найти дубликаты изображений в Ubuntu?

Мне интересно, есть ли способ сравнить папки в Ubuntu? Я много раз пытался упорядочить свои папки с фотографиями. и по этой причине у меня есть несколько папок, содержащих одни и те же файлы (возможно, несколько дополнительных), и было бы здорово иметь инструмент для определения, какие файлы являются дополнительными и какие файлы идентичны.

PS Я только что нашел приложение, которое хорошо работает. Это называется FSlint. Вот ссылка на него с подробным описанием: http://www.addictivetips.com/ubuntu-linux-tips/clean-up-ubuntu-remove-duplicates-with-fslint-filesystem-lint/

Читайте также:  Как ускорить работу старого компьютера windows 10

4 ответа

diff поможет вам найти дубликаты файлов в двух разных каталогах, но если ваш беспорядок больше или если по какой-либо другой причине вы хотите найти дублированные (точные) файлы изображений во всем каталоге, включая подкаталоги, вы можете использовать образ gthumb средство просмотра браузера, которое, вероятно, уже установлено в вашей системе.

Gthumb предоставляет инструмент для поиска дубликатов медиа / аудио / видео / изображений / текста / всех файлов в каталоге. Для этого просто выберите каталог в режиме просмотра, который отображает левую панель с вашим деревом каталогов, а затем в меню выберите «Правка»> «Найти дубликаты». диалоговое окно показывает дубликаты и позволяет выбрать, какие файлы) удалить. Эта процедура наглядна и полезна во многих случаях; но это медленно, если у вас слишком много дубликатов файлов для удаления.

Источник

Посоветуйте софт для поиска дубликатов файлов под Linux

Посоветуйте линуксовый софт для поиска дубликатов файлов. Восстановил кучу данных с диска, часть со структурой папок и именами, часть — без. Просматривая мельком восстановленное уже вижу, что часть данных дублируется, иногда неоднократно. Руками не разобрать — всего порядка 370к файлов.

По типам файлов для поиска дубликатов важнее всего фото, видео, документы.

Есть что-то такое под Линукс?

Если не найду софт под Линукс, буду цеплять нарды и использовать софт под макось, но лучше бы Линукс, потому что есть ещё 3тб хард в btrfs, на котором часть данных также может дублироваться.

Зависит от данных. И что значит «дубликатов»? Идентичный размер файла?

rmlint, умеет много разных критериев, достаточно быстр, генерит вывод в виде скрипта/списка/etc.

В том числе. Есть файлы идентичные 1 в 1. Их обязательно надо найти и удалить дубли.

Есть, например, исходная фотография, и где-нибудь лежит она же с уменьшенным разрешением. Вот такие файлы тоже надо найти и удалить.

Ну, софтина клёвая, видимо. Но хотелось бы что-нибудь с GUI, чтобы можно было быстренько просматривать.

Есть, например, исходная фотография, и где-нибудь лежит она же с уменьшенным разрешением. Вот такие файлы тоже надо найти и удалить.

А это уже задача для спецсофта, который умеет строить отпечатки изображений.

Источник

Поиск дубликатов файлов в Linux

Дубликаты файлов могут появляться при сохранении резервных копий на диск, одновременном редактировании нескольких версий одного и того же файла или при изменении структуры каталогов. Одни и те же файлы могут быть сохранены несколько раз с различными именами или в разных папках и только засоряют дисковое пространство.

Читайте также:  Canon 421dw драйвер сканера windows 10

Охота на них каждый раз может стать большой проблемой. Но к счастью существует маленькая утилита которая может сберечь ваше время потраченное на поиск и уничтожение дубликатов файлов на компьютере — FSLint. Она написана на Python. Время навести порядок и удалить старые файлы.

Поиск дубликатов файлов в Linux

Вы можете установить утилиту из официальных репозиториев большинства дистрибутивов Linux. Давайте рассмотрим пример для Ubuntu. Сначала обновите списки пакетов:

sudo apt update

Затем установите утилиту:

sudo apt install fslint

После завершения установки вы можете запустить утилиту из главного меню:

В главном окне программы можно выбрать различные варианты поиска неисправностей файловой системы. По умолчанию выбран Поиск дубликатов, ещё вам предстоит настроить папки, в которых будет выполнятся поиск, по умолчанию добавлена только домашняя папка:

После того как вы выберите каталоги, запустите поиск дубликатов Linux. Для этого надо нажать кнопку Поиск. Утилита сразу же начнёт выводить обнаруженные дубликаты файлов:

Когда поиск завершится вы сможете удалить файлы, которые вам не нужны, для этого выделите их мышью и нажмите кнопку Удалить. Программа спросит подтверждения действия и удалит файл:

Также вы можете объединить файлы дубликаты с помощью жесткой ссылки. По нажатию кнопки Объединить, утилита объединяет все файлы кроме выделенных. Кроме того, утилита позволяет искать несовместимые имена файлов, временные файлы, плохие ссылки, пустые директории и многое другое. Поэкспериментируйте с ней если будет желание.

Источник

Как найти повторяющиеся файлы в Linux и удалить их

Краткая информация: FSlint – отличный инструмент для поиска дубликатов файлов в Linux и их удаление.

FDUPES также находит файлы с тем же именем в Linux, но в командной строке.

Если у вас есть такая привычка скачивать все из Интернета, как я, у вас будет много дубликатов файлов.

Чаще всего я могу найти те же песни или кучу изображений в разных каталогах или в конечном итоге создать резервные копии некоторых файлов в двух разных местах.

Это боль, локализуя эти повторяющиеся файлы вручную и удаляя их для восстановления дискового пространства.

Если вы хотите избавиться от этой боли, существуют различные приложения Linux, которые помогут вам найти эти дубликаты файлов и удалить их.

В этой статье мы расскажем о том, как вы можете найти и удалить эти файлы в Ubuntu.

Примечание. Вы должны знать, что делаете.

Если вы используете новый инструмент, всегда лучше попробовать его в структуре виртуального каталога, чтобы выяснить, что он делает, прежде чем принимать его в корневую или домашнюю папку.

Читайте также:  Драйвера lan для windows 10 asus

Кроме того, всегда лучше создавать резервную копию вашей системы Linux!

FSlint: инструмент GUI для поиска и удаления дубликатов файлов

FSlint помогает вам искать и удалять повторяющиеся файлы, пустые каталоги или файлы с неправильными именами.

Он имеет командную строку, а также графический интерфейс с набором инструментов для выполнения множества задач.

Чтобы установить FSlint, введите следующую команду в Terminal.

Откройте FSlint из поиска Dash.

FSlint включает в себя ряд опций на выбор.

Существуют варианты поиска дубликатов файлов, установленных пакетов, плохих имен, конфликтов имен, временных файлов, пустых каталогов и т. д.

Выберите путь поиска и задачу, которую вы хотите выполнить с левой панели, и нажмите «Найти», чтобы найти файлы.

После этого вы можете выбрать файлы, которые хотите удалить, и удалить их.

Вы можете щелкнуть по любому файловому каталогу из результата поиска, чтобы открыть его, если вы не уверены, и хотите дважды проверить его перед удалением.

Вы можете выбрать параметры расширенного поиска, где вы можете определить правила для исключения определенных типов файлов или исключить каталоги, которые вы не хотите искать.

FDUPES: инструмент CLI для поиска и удаления дубликатов файлов

FDUPES – это утилита командной строки для поиска и удаления дубликатов файлов в Linux.

Он может отображать дубликаты файлов в определенной папке или рекурсивно в папке.

Он запрашивает, какой файл сохранить перед удалением, а опция noprompt позволяет удалить все дубликаты файлов, сохраняя первый, не спрашивая вас.

Установка на Debian / Ubuntu

Установка на Fedora

Для рекурсивного поиска в папке используйте параметр -r

Это будет только список дубликатов файлов и не удалит их самостоятельно.

Вы можете вручную удалить дубликаты файлов или использовать -d, чтобы удалить их.

fdupes -d /path/to/folder

Это ничего не удалит самостоятельно, но отобразит все дубликаты файлов и даст вам возможность удалять файлы по одному или выбрать диапазон для его удаления.

Если вы хотите удалить все файлы без запроса и сохранения первого, вы можете использовать опцию noprompt -N.

На приведенном выше снимке экрана вы можете увидеть команду -d, показывающую все дубликаты файлов в папке, и попросит вас выбрать файл, который вы хотите сохранить.

Существует много других способов и инструментов для поиска и удаления дубликатов файлов в Linux.

Лично я предпочитаю инструмент командной строки FDUPES; это просто и не требует никаких ресурсов.

Источник

Оцените статью