Кому нужен скрипт поиска картинок?

Изображение пользователя ks.
Опубликовано:
Раздел:

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

Зависимости -- python, python-imaging (PIL), если пакет python-imaging не установлен, будет использован convert из ImageMagick (в этом случае поиск будет не только среди растровых, но и векторных изображений, однако работать скрипт будет существенно медленнее).

Синтаксис:

find-img -p pattern [-t threshold] directories

где
   pattern     -- файл эталонного изображения
   threshold  -- порог коэффициента корреляции
   directories -- список каталогов


Поехали!

JID: konst.su [обезьяна] gmail.com

Прикрепленный файлРазмер
find-img.zip1.28 кб
Изображение пользователя ks.

Кому нужен скрипт поиска картинок? #1

Что-то *.gz не хочет вкладываться Грустный


Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя Mimino.

Re: Кому нужен скрипт поиска картинок? #2

Этот форум был настроен на атачи "txt .gif .rpm .zip .tar .tar.gz .cpio" (показывается внизу, при подключении файла).

Добавлен .gz


© Бюрократия - мать порядка
= ASPLinux 12/KDE =

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #3

Обновление скрипта

Добавил возможность явно указывать использование PIL или ImageMagick, опции
--pil
--magick

Прикрепленный файлРазмер
find-img.gz1.56 кб

Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #4

Мелкие переделки привели к смене семантики так, что теперь сменилось название на cmp-img. Вместо того, чтобы скрипт сам сканировал каталоги -- решил поручить это внешним программам, типа find с более широкими возможностями. Получилось что-то подобное фильтру.

Использование: cmp-img [options] -p pattern [--] files|-
(в квадратных скобках необязательные параметры)

Options:
-h, --help показать эту справку и выйти
-V, --version напечатать версию и выйти
-r, --print-r выводить коэффициент корреляции
-0, --null принимать имена файлов, разделенных '\0', как xargs. Используется с `-'
-e, --errors трассировка ошибок
-u USE, --use=USE использовать pil (Python Image Library),
либо imagick (ImageMagick),
либо gmagick (GraphicsMagick),
либо all (и то и другое Улыбка)
-t THRESHOLD, --threshold=THRESHOLD
выводить изображения, модуль коэффициента корреляции которых
больше или равен порогу (THRESHOLD)
по умолчанию = 0.8
-p PATTERN, --pattern=PATTERN
файл эталонного изображения (образец)

Arguments:
files список файлов изображений
- вводить имена файлов со стандартного ввода (stdin)

Гарантии:
Какие, на фиг, могут быть гарантии? Улыбка


Примеры использования.

Поиск картинок в каталоге /usr/share и его подкаталогах, эталон в текущем каталоге:
find /usr/share | cmp-img -p etalon.png -

Поиск картинок в каталоге /usr/share и его подкаталогах jpg-файлов с "кривыми" именами,
эталон в текущем каталоге:
find /usr/share -name '*.jpg' -print0| cmp-img -0p etalon.png -

Поиск картинок в каталоге /usr/share/wallpapers png и jpg файлов,
эталон в текущем каталоге:
cmp-img -p etalon.png /usr/share/wallpapers/*.{png,jpg}

Поиск картинок в каталоге /usr/share и его подкаталогах, с использованием ImageMagick,
эталон в текущем каталоге:
find /usr/share -type f | cmp-img -u imagick -p etalon.png -

Итак, скачиваем скрипт, под root разжимаем и делаем его выполняемым:

zcat cmp-img.gz > /usr/local/bin/cmp-img
chmod 755 /usr/local/bin/cmp-img

В системе должен быть установлен интерпретатор python и его библиотека PIL (Python Image Library), которая в RH-подобных дистрах находится в пакете python-imaging.
Вместо PIL скрипт может использовать convert из ImageMagick или gm (GraphicsMagick)

Скрипт отлаживался на Python 2.5 (в ASPLinux python 2.4), так что если что-то пойдет не так -- пишите

Прикрепленный файлРазмер
cmp-img.gz2.89 кб

Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя shmel.

Re: Кому нужен скрипт поиска картинок? #5

Великолепный скрипт! спасибо!


http://hosting.asplinux.info - Онлайн FAQ по хостингу

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #6

Внес некоторые правки с учетом изменений иерархии классов исключений при переходе с python 2.4 на 2.5, что вызывало не совсем корректный выход при вызове sys.exit в python 2.4, а также изменил вывод чисел с учетом локали. Планирую в будущем приделать морду для чайников (и чего они так боятся CLI?) Улыбка

Прикрепленный файлРазмер
cmp-img.gz3.03 кб

Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #7

Добавил вывод строк, разделенных "\0" (опция -z, --print0).

Кстати, команда для поиска негатива:
find /dir -type f | cmp-img -rp positive.png - | awk '$1 < 0'

Прикрепленный файлРазмер
cmp-img.gz3.1 кб

Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #8

Выкладываю морду к cmp-img.

Закачиватете тарбол, распаковываете его командой
tar xzf findimg.tar.gz
заходите в каталог findimg
cd findimg
и выполняете (с правами root'а)
make
программа установиться в /usr/local, либо:
make DEST=$HOME
если есть желание поставить ее в домашний каталог (для этого права root'а не нужны)

Морда запускается командой findimg

Прикрепленный файлРазмер
findimg.tar.gz7.17 кб

Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя ks.

Кому нужен скрипт поиска картинок? #9

Интересно, из тех кто пользуется скриптом кто-то сидит в ASPLinux? ;)


Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #10

Исправил "особенность", из-за которой не запускался cmp-img из findimg-а в ASPLinux 11.2.

Выкладываю тарболы и rpm

rpm-ки устанавливать командой из root-а
rpm -ivh cmp-img-1.0.4-1.rpm findimg-0.2-1.rpm

или покороче, если в каталоге больше нет других rpm-пакетов
rpm -ivh *.rpm

PS
Удачи!

Прикрепленный файлРазмер
findimg-0.2-2.noarch.rpm5.84 кб
cmp-img-1.0.4-1.noarch.rpm5.05 кб
findimg-0.2.tar.gz4.25 кб
cmp-img-1.0.4.tar.gz3.59 кб

Поехали!
JID: konst.su [обезьяна] gmail.com

Изображение пользователя ks.

Re: Кому нужен скрипт поиска картинок? #11

Обновляем интырфэйс Улыбка

Прикрепленный файлРазмер
findimg-0.5-1.noarch.rpm7.82 кб
findimg-0.5.tar.gz6.29 кб

Поехали!
JID: konst.su [обезьяна] gmail.com