Я ищу инструмент/программу, которая возьмет изображение в качестве примера и просканирует мой жесткий диск, чтобы найти похожие изображения, точно так же, как Google Images делает в Интернете.
Должен работать на Linux. См. Поиск визуально похожих изображений для заданного файла изображения (в Windows) для программного обеспечения Windows.
findimagedupes
это обычная программа командной строки для Linux и других платформ Unix.
Он ищет сходство между всеми файлами. Вы можете отфильтровать вывод, чтобы сохранить только информацию об одном файле, если хотите, я не думаю, что это сильно влияет на производительность (медленная часть сканирует все файлы).
Чтобы сканировать файлы PNG и JPEG в определенном каталоге и сохранять только изображения, похожие на SOMEIMAGE.jpg, выполните следующие команды:
cd /path/to/directory
find . \( -name '*.jpg' -o -name '*.png' \) -print0 |
findimagedupes -0 - |
grep -F 'SOMEIMAGE.jpg'
Если вы собираетесь делать это часто, findimagedupes может хранить отпечатки изображений в базе данных, что значительно ускоряет поиск после создания базы данных. Подробнее см. в руководстве.
Немного сделай сам, но вы можете делать такие вещи с python плюс OpenCV или Numpy - в любом случае подход одинаков:
Добавьте графический интерфейс, если хотите.
Я рекомендую geeqie
, вы можете установить через менеджер пакетов, например sudo apt install geeqie
.
Как видите, он способен группироваться по ушам Пикачу, хотя изображения совершенно разные. Обратите внимание, что в этом каталоге ~ 3759 изображений, и его заполнение занимает ~ 5 минут.
Как использовать:
cd
в нужный каталог. В качестве альтернативы вы можете сначала открыть, geeqie
а затем вставить путь.geeqie
, чтобы открыть изображения текущего каталога.[ОБНОВИТЬ]
Я только что написал для этого скрипт на Python (не связанный с geeqie
). Этот сценарий имеет надежные параметры, позволяющие вам выбрать метод хеширования или метод манхэттенской нормы, сохранить совпавшие/не совпадающие выходные данные в виде символической ссылки на конкретный каталог, кэшировать файл (вы можете сравнить более 10000 изображений за секунды!), И указать приемлемый процент. В настоящее время я заставляю его работать только в Linux.
geeqie
довольно хорошо. Если бы только Move to
диалоговое окно привело меня в правильный рабочий каталог, я бы нашел это полезным.ПРИМЕЧАНИЕ. Это больше не работает. Я больше не мог заставить его работать с большинством файлов, похоже, этот инструмент не работает.
Существует Libpuzzle , который будет выполнять часть сравнения, но не часть поиска всех изображений. Чтобы установить его, используйте пакет libpuzzle-bin
, который предоставит вам инструмент командной строки.
Это библиотека и инструмент командной строки, предназначенный для сравнения двух изображений и определения их сходства. Я использовал его, чтобы найти файлы, которые были очень похожи (логотипы) некоторое время назад, и это работало хорошо.
Если вы хотите использовать его, вы должны использовать дополнительное программное обеспечение, которое вызывает libpuzzle с соответствующими параметрами.
Я написал скрипт, который можно использовать для команды find -exec. Сценарий выглядит следующим образом (у меня он есть в файле с именем simple-pd.sh
):
#!/bin/bash
if (( $(echo "0.80<`puzzle-diff \"$1\" \"$2\"`" | bc -l) )) ; then
exit 0
fi
exit 1
вызывается так:
find . -regex ".*jpg\|.*gif\|.*png" -exec ./simple-pd.sh MYIMAGE {} \; -print
где вы заменяете MYIMAGE изображением, с которым вы хотите сравнить. Скрипту нужны права на выполнение ( chmod +x simple-pd.sh
)
Инструмент (вместе со сценариями здесь) будет делать то, что вы хотите большую часть времени.
Хотя инструмент мне нравится, у него есть и недостатки. Он не может прочитать все файлы (иногда у меня были проблемы с jpg) и раздражает, когда он терпит неудачу.
Параметры puzzle-diff
почти не задокументированы, вам нужно будет протестировать некоторые изображения, которые вы хотите иметь, и некоторые, которые вы не видите, чтобы увидеть, какие из них лучше всего подходят для вашей задачи.
Мой сценарий предполагает, что изображение, которое очень похоже (0,80), должно быть указано как ДА, а остальные как НЕТ. Возможно, вы захотите уменьшить это число, чтобы оно соответствовало вашим потребностям.
ДюпГуру ЧП . Плюс это с открытым исходным кодом. :)
dupeGuru Picture Edition (сокращенно PE) — это инструмент для поиска дубликатов изображений на вашем компьютере. dupeGuru PE — старший брат dupeGuru. Он работает как dupeGuru, но специализируется на сопоставлении дубликатов изображений. dupeGuru PE работает на Windows, Mac OS X и Linux.
dupeGuru PE эффективен. DupeGuru PE может не только находить точные совпадения, но также может находить дубликаты среди изображений разного типа (PNG, JPG, GIF и т. д.) и качества. В Mac OS X dupeGuru PE может сканировать вашу библиотеку iPhoto.
dupeGuru PE настраивается. Вы можете настроить его механизм сопоставления, чтобы найти именно те дубликаты, которые вы хотите найти. На странице Preference файла справки перечислены все настройки модуля сканирования, которые вы можете изменить.
dupeGuru PE безопасен. Его двигатель был специально разработан с учетом требований безопасности. Его справочная система каталогов, а также система группировки не позволяют вам удалять изображения, которые вы не хотели удалять.
Сравните любой формат изображения. dupeGuru PE поддерживает форматы JPG, PNG, TIFF, GIF и BMP. Все эти форматы можно сравнивать между собой. Версия dupeGuru PE для Mac OS X также поддерживает форматы PSD и RAW (CR2 и NEF).
Ваши библиотеки iPhoto и Aperture поддерживаются.
Делайте что хотите со своими дубликатами. Вы можете не только удалять дубликаты файлов, которые находит dupeGuru, но также перемещать или копировать их в другое место. Существует также несколько способов фильтрации и сортировки результатов, чтобы легко отсеивать ложные дубликаты (для сканирования с низким порогом).
(ответ скопирован с https://superuser.com/questions/311633/free-visual-similarity-image-for-a-local-hard-drive-search/453251#453251 - все кредиты Пэту на SuperUser )
Попробуйте поискать по картинке на диске . Это программа для браузера (Linux, Windows, Mac и т. д.), которую я разработал. Лучше всего работает с Chrome и Firefox, так как другие браузеры могут не поддерживать выбор папки. Вы можете использовать программу в автономном режиме, загрузив веб-страницу и разместив ее на порту 8080, поскольку она не требует обработки изображений сервером.
пользователь6306
Жиль "ТАК - перестань быть злым"
пользователь6306
очки
findimagedupes
работает для меня как шарм, вот его документация: manpages.ubuntu.com/manpages/precise/man1/…jhnc
-a
опция позволяет вам просто проверять вашу базу данных на совпадения с коротким списком файлов, что будет быстрее, чем проверка их всех — что-то вроде O(m*n) для m новых файлов и n в базе данных вместо O(n^2).милаху
findimagedupes.pl
, не путать сfindimagedupes.go
"использующим другой алгоритм хеширования"