Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторный практикум по курсу «Компьютерная графика и обработка изображений». GIMP

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
945 Кб
Скачать

Цвет-Инвертировать яркость.

Цвет-Цветовой баланс. Объяснить сущность алгоритма.

Цвет-Тон-Насыщенность. Объяснить сущность алгоритма.

Цвет-Яркость-Контраст. Объяснить сущность алгоритмов. Попробовать объяснить термин контраст изображения.

Цвет-Кривые… (Гамма-характеристика). Объяснить сущность алгоритма гамма-коррекции, переменные и единицы измерения по осям X и Y.

С использованием гамма-коррекции изучить работу алгоритма изменения яркости изображения.

Цвет-Обесцвечивание-Цвет в градации серого – получение ахроматического изображения. Определить число градаций полученного изображения. Объяснить сущность алгоритма.

Цвет-Порог – получение бинарного изображения. Объяснить сущность алгоритма.

Цвет – Постеризация (алгоритм изменения числа уровней яркости). Объяснить сущность алгоритма.

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

иобъяснить, для каких типов изображений целесообразно применять тот или иной тип модели цветности изображений.

5. Открыть одно из многоградационных монохромных (ахроматических) изображений. С использованием гамма-коррекции получить из него бинарное изображение.

6. Выполнить бинаризацию предыдущего изображения с помощью операции выбора порога. Сравнить результат. Найти разницу в результате и объяснить ее причину.

7. Изучить работу метода изменения гистограмм алгоритмом «Постеризация» (уменьшение числа уровней) для различных типов модели цветности изображений. Объясните суть рекомендаций для использования методов изменения гистограмм, в целом, и алгоритма «Постеризации» пакета GIMP, в частности.

8. Выполнить несколько вариантов изменения гистограммы, используя гамма-коррекцию и окно гистограммы для оценки результата. Возможные варианты: равномерный закон, нормальный закон, экспоненциальный, в соответствии с текущей гистограммой

идр.

21

9. Изучить алгоритмы морфологии в GIMP: эрозия (erode), расширение (dilation). Использовать, кроме изображений из папки «Образцы_изображений для_лаб_ОИ», подготовленные самостоятельно изображения. Объяснить видимую разницу в результатах для различных операций морфологии.

Дополнительные задания

1.Используя функцию меню Фильтры – Визуализация – Тек-

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

2.Используя функцию меню Фильтры – Имитация – Про-

стой линейный итеративный кластеринг, исследовать эффек-

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

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

4.Используя функцию меню Фильтры – Визуализация – Со-

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

5.Возможны и другие дополнительные задания.

Вопросы для контроля

1.Покажите работу алгоритма негатив-позитив. Какое математическое преобразование лежит в его основе?

2.Покажите работу алгоритма бинаризации изображения. В чем смысл его работы?

3.Какое выражение лежит в основе преобразования полноцветного изображения в монохромное многоградационное (ахроматическое) изображение? Почему/откуда оно взято?

4.Что такое гистограмма изображения? Как этот алгоритм выполняется?

5.Какие виды гистограмм можно строить для одного и того же изображения? Продемонстрируйте.

22

6.Что такое изменение гистограмм?

7.Что такое алгоритм постеризации? Продемонстрируйте и объясните его работу в GIMP.

8.Что такое гамма-коррекция? Продемонстрируйте ее работу в среде GIMP. Объясните сущность этого алгоритма.

9.В каких целях и для каких задач применяется гаммакоррекция?

10.Объясните алгоритм функционирования одного из алгоритмов морфологии?

11.Для каких типов изображений обычно используется морфо-

логия?

12.Возможны другие вопросы…

Список литературы

1.Глоссарий (gimp.org).

2.GNU Программа для обработки изображений. Руководство пользо-

вателя. http://docs.gimp.org/2.6/ru/index.html

3.Прэтт У. Цифровая обработка изображений: Пер. с англ. В 2-х кн. –

М.: Мир, 1982. (Pratt W.K. Digital Image Processing.- New York: J. Wiley, 1978).

4.Форсайт Д.А., Понс Ж. Компьютерное зрение. Современный подход.: Пер. с англ. – М.: Издательский дом «Вильямс», 2004.

5.Гонсалес Р. Вудс Р. Цифровая обработка изображений 3-е изд. – М.: Техносфера, 2012.

23

КГиОИ: Общая информация к лабораторным работам № 4

и№ 6. Технологии программирования в среде GIMP

Вданном разделе приведена краткая начальная информация о работе с плагинами в GIMP, а также о разработке сценариев (скриптов) на языке Script-Fu. Большая часть приведенной информации взята из фирменной документации GIMP.

Расширения. Многие, возможно, большинство операций, которые выполняют в GIMP, реализованы как результат применения самого GIMP. Однако GIMP также широко использует «плагины» (plug-in, «подключать), которые являются внешними, подключаемыми к основной, в нашем случае к GIMP программами, которые очень тесно взаимодействует с GIMP, и способны манипулировать изображениями и другими объектами GIMP. Много важных плагинов упаковано вместе с GIMP. Писать плагины (и скрипты) – это самый простой пользовательский способ для расширения возможностей GIMP. Все команды в меню фильтров, а также значительное число команд в других меню на самом деле реализованы как подключаемые модули.

Плаги́н (plug-in, от plug in «подключать») – независимо компилируемый программный модуль, динамически подключаемый к основной программе и предназначенный для расширения и/или использования ее возможностей. Плагины GIMP являются внешними программами, которые запускаются под контролем основной программы и очень тесно с ней взаимодействуют. Плагины могут обрабатывать изображения почти любыми методами. Их преимущество заключается в том, что намного легче добавить к GIMP новую операцию с помощью написания небольшого плагина, чем внести изменение в большую массу сложного кода, который составляет ядро GIMP. Множество ценных плагинов, написанных на C, содержат всего около 100–200 строк исходного кода.

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

24

Дополнения могут быть не только в меню Фильтры. Дополнение можно добавить, как элемент к любому меню. Некоторые основные функции GIMP (например, Слой-Прозрачность-Полу- сведение) созданы как дополнения. Но меню Фильтры – база по умолчанию для всех дополнений.

Для получения общей информации о плагинах и о том, как их использовать, см. раздел пользовательской документации, посвященный плагинам. Несколько дюжин плагинов включены в основную поставку GIMP и устанавливаются автоматически вместе с ним. Большинство из них может быть доступно через меню Главное меню-фильтры (фактически все, что доступно в этом меню, является плагинами), но некоторое количество расположено в других меню. В большинстве случаев их можно использовать без како- го-либо представления о том, что это плагин.

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

Предостережение: Плагины GIMP написаны для разных версий. Однако плагины, написанные для одной версии, едва ли могут быть успешно использованы с другими версиями. Они должны быть портированы: иногда это легко, иногда нет. Многие плагины доступны для нескольких версий. Перед тем, как пробовать установить плагин, удостоверьтесь, что он был написан для вашей вер-

сии GIMP.

Замечания

1. В большинстве случаев можно использовать плагин так же, как и любой другой инструмент GIMP'a, без необходимости осо-

25

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

2.Поскольку плагины представляют собой отдельные программы, они сообщаются с GIMP при помощи особого метода: разработчики GIMPа называют его «говорить по проводу». Когда в плагине происходит сбой, связь обрывается, и появится сообщение об ошибке «wire read error».

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

4.Из-за особенностей метода связи плагинов с GIMP, они не имеют никакого механизма информирования об изменениях, которые вы производите на изображении после запуска плагина. Если запустить плагин, а затем с помощью какого-либо другого инструмента изменить изображение, плагин чаще всего будет «падать», и даже когда это не происходит, результат окажется искаженным. Необходимо избегать запуска более чем одного плагина, и избегать операций над изображением до тех пор, пока на нем не завершит работу плагин. Если проигнорировать этот совет, можно испортить не только изображение, но также и механизм истории отмен, следовательно, не будет возможности исправить вашу глупость.

Установка новых плагинов в Windows

Windows представляет собой намного более проблематичное окружение для сборки программного обеспечения, чем Linux. Каж-

26

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

Применительно к плагинам GIMP это означает следующее: необходимо выяснить, есть ли окружение на вашем компьютере, в котором можно собирать программы, или его нет. Если такой возможности нет, тогда лучше найти где-нибудь откомпилированную версию плагина. В этом случае необходимо просто положить его в вашу персональную директорию плагинов. Если есть окружение, в котором можно собирать программы, тогда вы, без сомнения, уже знаете немного об этих вещах. Основная библиотека, используемая для взаимодействия с GIMP (именуемая «libgimp»), имеет хорошо документированный API.

Если вы желаете настроить окружение для сборки и готовы к героическим поступкам, можете найти достаточно недавнее описание этих действий на странице GIMP Wiki

HowToCompileGimp/MicrosoftWindows [GIMP-WIKI-MS], а также по ссылкам [1–3].

Сценарии (Скрипт-Фу)

В дополнение к Plug-Ins, которые являются программами, написанными на языке Си или других языках высокого уровня, GIMP также может использовать скрипты. Script-Fu – это то, что в среде Windows назвали бы «макросы». Наибольшее их количество из существующих сценариев написаны на языке, называемом Script-Fu, который является уникальным для GIMP (это диалект Lispподобного языка, называемого Scheme). Кроме того, можно писать скрипты в GIMP на Python. Эти языки более гибкие и мощные, чем Script-Fu, их недостаток заключается в том, что они зависят от программ, которые не автоматически поступают в упаковке с GIMP, поэтому не гарантируется их правильная работа в каждой установ-

ке GIMP.

27

Но Script-Fu является более мощным, чем макрос. Script-Fu основан на языке интерпретации, который называется Scheme, а работает, используя функцию запроса к базе данных GIMP. Можно сделать все виды операций в Script-Fu, но обычный пользователь GIMP, вероятно, будет его использовать для автоматизации прежде всего:

часто производимых операций;

действительно сложных и трудных операций.

Помните, что можно сделать многое со Script-Fu. Сценарии, которые приходят с GIMP, могут быть весьма полезны, но они могут также служить в качестве модели для изучения Script-Fu, или, по крайней мере, как основа и источник изменений, когда вы сделали собственный сценарий. Некоторые из скриптов также очень просты, и, вероятно, не понадобится никакой документации для обучения их использованию.

Script-Fu (диалект схемы) – не только язык сценариев для GIMP. Но Script-Fu является единственным языком сценариев, который устанавливается по умолчанию. Другие доступные расширения сценариев – это Perl и Tcl (Tool Command Language). Вы можете загрузить и установить оба эти расширения в GIMP Plugin Registry [GIMP-REGISTRY].

Больше информации об использованных в GIMP скриптах Script-Fu и методике написания своих собственных, можно найти, например, в [4,5].

Список литературы

1.Создание сценариев (gimp.org) https://docs.gimp.org/2.6/ru/gimpscripting.html

2.15 лучших плагинов GIMP, которые вы должны иметь в 2021 году

(tehnografi.com).

3.8 лучших плагинов GIMP и как их установить – gadgetshelp,com

4.3. Инструкция по Script-Fu (gimp.org).

5.Как писать скрипты для Gimp 2.x? Осваиваем Scheme (Script-Fu).

Часть 2. (annimon.com).

28

Лабораторная работа № 4

«КГ: ТЕХНОЛОГИИ СОЗДАНИЯ ПЛАГИНОВ и СКРИПТОВ В СРЕДЕ GIMP»

Для выполнения работы рекомендуется использовать подготовленные самостоятельно изображения или выбрать изображения с подходящей моделью цветности из числа «Образцы_изображений для_лаб_ОИ».

Задание

1.Изучите технологию разработки плагинов и скриптов.

2.Выберите для реализации, на свое усмотрение, технологию плагинов или скриптов.

3.Составьте техническое задание (ТЗ) в виде короткого текстового файла в формате *.doc, которое вышлите преподавателю на почту для утверждения. В ТЗ указать: ФИО, номер группы, выбранную технологию, краткое описание функционального содержания задания, т.е. описание методов и алгоритмов, необходимых для написания программы программистом, используемые библиотеки и языки программирования. Алгоритм следует выбирать из числа алгоритмов КГ. Утвержденное ТЗ следует предъявить преподавателю непосредственно перед сдачей данной лабораторной работы.

4.При выборе технологии плагинов перейдите к пункту 5. При выборе технологии скриптов перейдите к п.6, а затем к п.7.

5.Изучите механизм работы и алгоритм одного из скриптов, интегрированных в GIMP. Внесите изменение в текст этого скрипта (измените алгоритм).

6.Изучите методику разработки плагинов. Разработайте свой плагин в среде С/C++ или на любом другом языке. Алгоритм плагина должен быть выбран из числа алгоритмов КГ.

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

29

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

8.При сдаче данной лабораторной работы необходимо представить утвержденное ТЗ, затем продемонстрировать работу вашего ПО. Необходимо ориентироваться в коде демонстрируемого ПО.

9.Для окончательной сдачи лабораторной работы необходимо составить краткий отчет и выслать его на почту преподавателям. Отчет должен содержать: ТЗ, описание процедуры подключения скрипта/плагина к GIMP, пример скриншотов исходного изображения и результата, а также текст программы с большим количеством комментариев.

Примеры вариантов заданий

Реализовать на основе технологии плагинов или сценариев. Ниже приведены только несколько примеров процедур-функций библиотеки Скрипт-Фу. Средний цвет границы – border average.

1.Checkerboard – Create a checkerboard pattern – создание вы-

кройки.

2.Analyze colorcube – Анализ цветового куба

3.Curve Bend – изгибает активный слой.

4.Decompose – создает новые серые изображения.

5.Edit Metadata – редактирует информацию метаданных.

6.Filmstrip – создание короткого динамического ролика/фильма.

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

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

1.Библиотека gimpfu. С помощью скрипта наложить фильтр плохой погоды на изображение. Описание: скрипт рекомендуется использовать с изображениями жанра пейзаж. Скрипт добавляет новый слой к исходному изображению и может использовать различные методы небольших ухудшений качества изображения. Основой алгоритма является фильтр размытия текущего слоя. Результат: на дополнительном слое возникает, например, эффект дождя. Используемые технологии: язык python.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]