Pull to refresh

GIMP: пороговые карты и их применение

Level of difficultyEasy
Reading time3 min
Views792

В GIMP: префильтрация перед порогом было рассказано, как используется префильтрация перед порогом и насколько сильно она оказывает влияние на результат порога. Также было указано, что возможно воспроизведение пороговых карт (TM) локальных порогов с помощью стандартных фильтров GIMP. И также было указано, что пороговые карты можно использовать для нормировки изображения в виде префильтра для более гибкого использования этих пороговых карт.

В данной статье будет показано воспроизведение (неточное) пороговой карты локального порога Niblack и использование её для нормировки исходного изображения.

Пороговая карта локального порога Niblack выражается как разность локального среднего и доли локального стандартного отклонения:

TMniblack = mean(I, r) - k * stdev(I, r)

где:

mean(I, r) - локальное среднее изображения I в радиусе r

k - коэффициент доли стандартного отклонения, обычно равный 0.2

stdev(I, r) - стандартное отклонение изображения I в радиусе r

Так как точное воспроизведение данной пороговой карты - это та ещё морока, то воспроизведём не в точности её, а некую похожую пороговую карту. Это не значит, что точное воспроизведение невозможно, просто в этом нет необходимости в рамках данной статьи:

TM = M - D

где:

M - размытая версия изображения I

D - размытая разность между изображением I и "средним" M

В качестве примера будет использовано всё тоже изображение "Лена":

Исходное изображение "Лена"
Исходное изображение "Лена"

Опять (для сравнения) применим порог без манипуляций с автоматическим определением значения порога (кнопка «Авто»):

Порог исходного изображения
Порог исходного изображения

Пороговая карта (TM)

В качестве компоненты M пороговой карты TM используем фильтр "Размытие оптики". Создадим копию слоя с исходным изображением и применим к новому слою данный фильтр с радиусом 25:

Размытое изображение (M)
Размытое изображение (M)

Используем режим наложение "Разница" для получения разности между размытым изображением и исходным:

"Разница" между размытым и исходным сломи
"Разница" между размытым и исходным сломи

После чего применим к данной разности всё тот же фильтр "Размытие оптики" с тем же радиусом:

Размытое изображение разности (D)
Размытое изображение разности (D)

Объединим две компоненты пороговой карты (M и D) с помощью наложения "Вычитание":

Пороговая карта (TM)
Пороговая карта (TM)

Применение пороговой карты (TM) в GIMP

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

Изображение после вычитания пороговой карты
Изображение после вычитания пороговой карты

После этого применим к разности порог со значением 1:

Порог по пороговой карте
Порог по пороговой карте

Как видим полученная пороговая карта очень похожа по характеру на пороговую карту Niblack. Не в точности, но для данного примера достаточно.

Такое применение пороговой карты с одной стороны просто, а с другой очень неудобно для регулирования результата. Чтобы иметь возможность регулировать результат порога, произведём нормализацию исходного изображения по пороговой карте. Создадим ещё одну копию слоя, установим фоновый цвет в (127, 127, 127) и удалим всё с нового слоя, проверив, что у слоя отсутствует альфа-канал:

Серый (127, 127, 127) слой
Серый (127, 127, 127) слой

Применим режим наложения слоя "Умножение" и наложим его на копию исходного слоя. После этого применим к пороговой карте режим наложения "Делить" и наложим её на результат умножения. Получим нормированное по пороговой карте изображение:

Нормированное по пороговой карте изображение
Нормированное по пороговой карте изображение

Ежели мы применим порог со значением 128 к нормированному изображению, то получим результат такой же (с точностью до округления: "умножение" и "деление" дают округления значений) результат, что и при простом применении пороговой карты:

Порог со значением 128 по нормированному изображению.
Порог со значением 128 по нормированному изображению.

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

Микшированное с исходным изображение
Микшированное с исходным изображение

Теперь применим порог к микшированному изображению с автоматическим определением значения порога по алгоритму Оцу (кнопка "Авто"):

Порог по микшированному изображению
Порог по микшированному изображению

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

Tags:
Hubs:
+1
Comments1

Articles