Введение

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

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

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

Расположение скриптов в GIMP

В редакторе GIMP скрипты устанавливаются в директории пользователя, поддиректорий
/.gimp-2.4/scripts
для версии 2.4.

там можно найти уже установленные скрипты, или установить их, перед этим скачав из интернета.

При установке скриптов следует учитывать версию самой программы GIMP. иногда скрипты несовместимы и приходится их переделывать под используемую версию.

Подготовка

Разбор книги на отдельные страницы

Я загрузил книжку и её пришлось для начала "разобрать" на отдельные странички:

Код:

pdfimages paint_rapair_car_body_fin.pdf img


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

img-000.jpg
img-001.jpg
и так далее.

Подбор параметров

 

после этого нужно открыть файл с изображением и подобрать вручную параметры для подавления шумов. Эту операцию можно также проделать автоматически во временном директории с несколькими файлами, используя вызов скрипта из консоли, добиваясь подбором двух параметров для функции plug-in-sel-gauss. Это параметры радиус и дельта. Если вы подбиаете параметры из самого редактора, то функцию преобразования можно найти под опцией

Filters->Blur->Selective Gaussian Blur

 

Пакетная обработка изображений

Подавление шумов

скрипт для GIMP выглядит таким образом:

файл batch-noise-reduction.scm

Код:

(define (batch-noise-reduction pattern
radii
delta)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE
filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(plug-in-sel-gauss RUN-NONINTERACTIVE
image drawable radii delta)
(gimp-file-save RUN-NONINTERACTIVE
image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))


Этот файл должен находиться в директории для скриптов GIMP

Вызываем из консоли в директории с файлами изображений команду:

Код:

gimp -i -b '(batch-noise-reduction "*.jpg" 3.0 176)' -b '(gimp-quit 0)'


Эта строчка вызывает скрипт batch-noise-reduction с параметрами редукции шумов: диаметр 3.0 пикселя и дельтой 176. После подтвержения команды скрипт обрабатывает автоматически все *.jpg файлы.

Изменения контраста и насыщенности

После "шумодава" необходимо настроить контраст и насыщенность:

файл brightness-contrast.scm

Код:

(define (brightness-contrast pattern
brigthness contrast)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE
filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-brightness-contrast drawable brigthness contrast)

(gimp-file-save RUN-NONINTERACTIVE
image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

 

Вызываем также из консоли пакетную обработку для всех *.jpg файлов:

Код:

gimp -i -b '(brightness-contrast "*.jpg" -19 33)' -b '(gimp-quit 0)'

 

Изменение резкости

С повышением уровня контрастности и понижением яркоcти. Эти параметры можно также оптимально подобрать в самом редакторе GIMP.

файл batch-sharpen.scm

Код:

(define (batch-sharpen pattern
percent)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE
filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(plug-in-sharpen RUN-NONINTERACTIVE
image drawable percent)
(gimp-file-save RUN-NONINTERACTIVE
image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))


после изменения уровня остроты картинки можно проверить их качество и собрать в один PDF файл, при помощи команды convert:

Код:

convert *.jpg new_book.pdf

Заключение

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

Успехов!

автор исходной статьи: Карбофос

Исходная статья взята с сайта: http://www.ruforum.de/thread.php?postid=196077

Статья была доработана (разбита на разделы для улучшения читаемости)

Комментарии  

0 #1 Александер 10.07.2014 15:25
Дайте пожалуйста готовый скрипт скачать.

Добавить комментарий


Защитный код
Обновить

Рейтинг@Mail.ru Rambler's Top100 Рейтинг@Mail.ru