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

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

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

2.С помощью скрипта обработать изображение, создав из него схему для вышивки крестом с размерами 100 на 100 «клеточек» и фиксированным количеством цветов. В основе данного скрипта может лежать, например, метод пикселизации изображения – метод ближайшего соседа. Для сокращения количества цветов можно, например, использовать функцию Изображение – Режим – Ин-

дексированный Создать оптимальную палитру. Возможны другие варианты этого метода. Язык программирования python. Библиотека gimpfu.

3.Разработать скрипт, имитирующий эффект Ортона (придание фотографиям мягкого свечения и объема). Для этого следует изменить настройки яркости и резкости, например, применив гауссово размытие (фильтр нижних частот, ослабляющий высокочастотные сигналы) и фильтр «Экспозиция» (осветление теней и полутонов изображения).

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

5.Самостоятельно разработать ТЗ на скрипт/ плагин по примеру перечисленных выше и реализовать его.

Замечание. Рекомендуется учесть, что при оценке лабораторных работ № 4 и 6 будет учитываться знание методов и алгоритмов, используемых для реализации функционала различных «манипуляций» с изображениями, а также сложность и самостоятельность при разработке ТЗ и программ.

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

1.Что такое плагин?

2.Поясните технологию применения плагинов в GIMP.

3.Что такое сценарии?

4.Каким образом реализуются сценарии?

5.Чем сценарий отличается от скрипта?

6.Чем плагин отличается от сценария?

31

7.Чем отличается скрипт от сценария?

8.Технология подключения (обращения) к плагинам и скриптам в среде GIMP.

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

1. GIMP. Инструменты преобразования (mostik.info) (18) GIMP ГИМП Урок 39 Инструменты цветокоррекции Уровни и кривые – YouTube – пример видеоурока.

32

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

«ОИ: МЕТОДЫ И ТЕХНОЛОГИИ ОБРАБОТКИ ИЗОБРАЖЕНИЙ В СРЕДЕ GIMP»

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

Продолжительность лабораторной работы № 5 два академических часа.

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

Введение

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

Среда GIMP ориентирована прежде всего на обработку фотографий, поэтому большую часть операций можно отнести к КГ.

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

Чтобы иметь возможность работать с такими алгоритмами в GIMP, можно использовать технологии подключения плагинов и сценариев (скриптов). Знакомству с этими технологиями посвящена лабораторная работа №6.

33

Восновном функционале GIMP, кроме относительно простых методов предобработки изображений, рассмотренных в лабораторной работе № 3, присутствует возможность реализации различных фильтров, как называют их разработчики GIMP, которые основаны на математической операции свертки. Практическому изучению этой важной и, можно сказать, классической операции в основном

ипосвящена работа № 5, хотя в документации GIMP этот термин, являющийся основой многих алгоритмов все время существования компьютерных технологий ОИ, найти трудно.

Ниже приводится краткое описание возможностей и функций GIMP, которые будут полезны при выполнении алгоритмов обработки изображений в лабораторной работе № 5.

Все функции, основанные на алгоритме свертки, следует искать в меню Фильтры. Линейная фильтрация на основе алгоритма свертки в пространственной области, как с произвольной маской (ядром свертки), так и с предустановленными настройками (фильтр ВЧ, фильтр НЧ, фильтр для выделения границ и т.д.). Предварительно следует изучить общие сведения о функциональности и основы алгоритма свертки, используя материалы лекций, монографий

иинтернета.

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

Немного теории

Ниже коротко рассмотрены некоторые классические алгоритмы ОИ, которые можно отнести к большой группе «алгоритмов предобработки» и которые основаны на математической операции свертки.

Алгоритм свертки. Обозначим исходное изображение:

fi, j ,i 0, m 1, j 0, n 1.

34

Вспомогательную матрицу, которая называется ядро свертки (фильтр), обозначим:

hk,l ,k a, b, l c, d.

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

Результат операции свертки изображения определяется так:

fi, j b

d

 

 

 

 

 

 

hk ,l fi k , j l ,

i 0, m 1, j 0, n 1.

k a

l c

 

 

 

 

 

 

Замечание 1. В документации по GIMP и меню операций пакета отсутствуют термины классической теории ОИ, а именно: «гаммакоррекция», «алгоритм свертки», «ядро свертки», «морфология» и ряд других. Поэтому, необходимо иметь начальное математическое представление о базовых операциях теории ОИ с тем, чтобы находить соответствующие операции в GIMP и понимать их функциональность.

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

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

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

Цвет – Подмешать шум или Фильтры – Шум – Шум в RGB

Медианный фильтр. Отклик фильтра вычисляется как средний элемент (медиана) упорядоченных по яркости пикселов, попавших в маску. Это самый быстрый по скорости выполнения алгоритм для фильтрации одиночных искажений, см. например [6]. Недостаток: размывает границы объектов. Фильтры – Размытие – Медиан-

ный фильтр

Фильтр Гаусса. Принцип сглаживания заключается в замене текущего значения интенсивности на среднее значение в окрестности, т.к. мы часто надеемся, что точки, расположенные ближе к

35

пикселю, обеспечивают больший вес, что приводит к нечеткой фильтрации Гаусса. Его ядро представляет собой двумерную матрицу с гауссовым распределением, которое больше в середине и постепенно уменьшается к периферии, см., например [6]. Недоста-

ток – размытие границ: Фильтры – Размытие – Гауссово размы-

тие

Низкочастотная фильтрация. Низкочастотный фильтр ослабляет высокочастотные компоненты и усиливает роль низкочастотных. Частота в применении к изображениям отражает количество имеющихся в изображении деталей. Резкие перепады яркости, помехи и шумы являются примером высокочастотных элементов в изображении. Сглаживание изображения реализуется, например, с помощью следующих ядер [7]:

 

 

 

1 1 1

 

 

 

 

1 1

1

 

 

 

 

1

2

1

 

 

1

 

 

 

 

H 2

1

 

 

 

 

H3

1

 

 

 

 

H1

 

1

1

1

,

 

 

1

2 1

,

 

 

 

2

4

2 .

9

10

16

 

 

 

1

 

 

 

 

1

 

 

 

 

1

2

 

 

 

 

1

1

 

 

 

 

1

1

 

 

 

 

 

1

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

 

1 1

1

 

 

0

1

0

 

 

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H1

 

1

9

1

,

H 2

 

1

5 1

,

H3

 

2

5 2 .

 

 

1

1

1

 

 

 

0

1

0

 

 

 

 

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фильтры – Улучшение – Высокочастотный фильтр. Под-

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

36

 

 

0

1

0

 

 

Маска 1

H

1

5

1

,

 

 

 

 

 

 

 

 

 

0

1

0

 

 

 

 

 

 

 

 

1

1

1

 

Маска 2

H

1

9

1

,

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

1

2

1

 

Маска 3

 

 

5

 

 

H 2

2 .

 

 

1

2

1

 

 

 

 

Эти маски отличаются тем, что сумма их элементов равна единице.

Фильтры – Выделение края – Оператор Лапласа – алгоритм оценки второй производной (выделение границ контуров или подчеркивание границ). Сумма коэффициентов должна равняться:

w(i, j) 1.

i j

 

 

 

 

Например:

 

 

 

 

 

0

1

0

 

w

1

5

1 .

 

 

 

 

 

 

0

1

0

 

 

 

Ниже даны примеры других масок оператора Лапласа [7]:

 

0 1

0

 

 

1

1

1

 

 

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H1

 

1

4

1

,

H 2

1

8

1

,

H3

 

2

4 2 .

 

 

0

1

0

 

 

1

1

1

 

 

 

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В этих ядрах сумма элементов матриц равна нулю, поэтому отклик фильтра может быть отрицательным.

37

Фильтр – Общие – Матрица свертки – позволяет задать про-

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

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

Фильтры – Выделение края – Оператор Собела – алгоритм оценки первой производной (выделение границ контуров).

Ядра свертки некоторых именных (Робертса, Превитта и Собела) алгоритмов определения границ (вычисление оценок первых производных):

 

0 0

1

1 0

0

 

 

 

 

 

 

 

 

 

Roberts

0

1

0

 

 

0

1

0

 

0

0

0

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

1

 

1 0

1

1

1 1 1

 

 

 

 

 

 

 

 

 

 

Prewitt

 

 

 

 

1 0

1

 

 

 

 

0

0

0

 

 

 

 

 

 

3

 

 

 

3

 

 

 

1 1

1

 

 

 

 

 

1 0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

0

1

1

 

1 2

1

 

 

 

 

 

 

 

 

 

 

 

 

Sobel

 

 

2

0

2

 

 

 

 

0

0

0

 

 

 

 

 

 

 

4

 

 

 

0

 

4

 

1 2

1

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оператор Собела [7]. Оператор Собела применяют в алгоритмах выделения границ. Это дискретный дифференциальный оператор, вычисляющий приближенное значение градиента яркости изображения. Результатом применения оператора Собела в каждой точке изображения является либо вектор градиента яркости в этой точке, либо его норма. Метод усиления края с помощью оператора Собела рассматривает два различных ядра свертки:

38

 

1

0

1

 

 

1 2

1

 

 

 

 

 

 

 

 

 

 

 

 

H1

 

2 0

2

,

H 2

 

0

0

0

.

 

 

1

0

1

 

 

 

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Исходя из этих сверток, могут быть вычислены величина и направление краев. Свертка для каждого ядра вычисляется отдельно. В качестве отклика данного фильтра выступает величина

S P2 Q2 ,

где P и Q – отклик ядер H1 и H2.

Иногда в качестве оператора Собела берется величина

S P Q .

Реализацию метода Собела в виде плагина и его исследование можно использовать в качестве темы для получения «автомата».

Примеры некоторых (Превитта и Кирша) «именных» курсовых ядер свертки, особенность которых состоит в том, что ядра следует «поворачивать» на 45 градусов для изменения предпочтительного направления определения границ.

Gradient direction

Prewitt compass gradient

 

 

Kirsch

 

1 1

1

5

3

3

East

1

2

1

5

0

3

H1

 

 

 

 

3

 

 

1 1

1

5

3

 

 

 

 

 

 

 

 

1

1

1

3

3

3

Northeast

1

2

1

 

5

0

3

H2

 

 

 

 

 

 

 

 

1 1

1

 

5

5 3

 

 

 

 

 

 

 

 

Метод усиления края с помощью оператора Превитта рассматривает два различных ядра свертки:

39

 

1 0

1

 

 

1 1 1

 

 

 

 

 

 

 

 

 

 

H1

1

0

1

,

H 2

0

0

0

.

 

1

0

1

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

Результат работы оператора Превитта есть

max P, Q .

Реализацию метода Превитта в виде плагина и его исследование можно использовать в качестве темы для получения «автомата».

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

Задание

1.Изучить основы и функциональные возможности операций свертки, перечисленные в Главное меню – фильтры GIMP. Изучить основы различных сверток, которые перечислены в разделе «Немного теории». Уметь объяснить преподавателю существо алгоритма свертки изображения и каждого примера.

2.Добавить к изображению случайный шум (выбрать его характеристики). Выполнить операцию фильтрации шума несколькими фильтрами с целью его удаления. Убедиться, что удалить шумовую составляющую крайне сложно, а полностью – практически невозможно. Показать результаты преподавателю и объяснить,

сиспользованием какого из алгоритмов фильтрации выполнены эти операции и в чем состоит отрицательный эффект их выполнения. Сравните результат с операцией Фильтры – Улучшение –

40

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