Рисунок 17.47. Пример применения нелинейного фильтра
Исходное изображение
После применения нелинейного фильтра
«Нелинейный фильтр» основан на приложении pnmnlfilt в операционной системе Unix. Он сочетает в себе сглаживание, удаление пятен и шума и увеличение резкости. Он работает над всем слоем, не над выделением.
Этот фильтр — что-то вроде «швейцарского армейского ножа». У него есть 3 режима работы. Во всех режимах каждый пиксель изображения рассматривается и обрабатывается в соответствии с его значением и значениями окружающих пикселей. Вместо того чтобы использовать 9 пикселей в области 3×3, фильтр использует шестиугольник, размер которого можно задать с помощью параметра «Радиус».
Этот фильтр находится в меню
→ → .Для работы фильтра необходим канал альфа. Иначе этот пункт меню недоступен.
Если выбран, то окно просмотра обновляется по мере изменения параметров.
Рабочий режим описан ниже.
Определяет степень применения фильтра. Допустимые значения от 0,0 до 1,0. Точное значение этого параметра зависит от рабочего режима. Этот параметр сравним с параметром альфа
в приложении pnmnlfilt.
Определяет размер области выборки вокруг каждого пикселя. Диапазон значений от 0,33 до 1,00. 0,33 означает только сам пиксель, то есть у фильтра нет эффекта. 1,00 означает все пиксели в квадрате 3 на 3 вокруг точки.
Этот фильтр может выполнить несколько разных функций:
Значение центральной точки будет заменено на среднее значение семи значений шестиугольника, но эти семь значений сначала сортируются по альфа, а затем первое и последнее значения удаляются из вычисления среднего. Это означает, что при Альфа
равном 0,0 фильтр становится обычной свёрткой (т. е. фильтр усреднения и сглаживания), а Радиус
определяет силу фильтра. Для незаметного преобразования лучше начать со значения Альфа
, равного 0,0, и Радиуса
, равного 0,55. Для более видимого эффекта выберите Альфа
0,0 и Радиус
1,0.
При Альфа
равном 1,0 фильтр заменяет значение пикселя на медиан семи шестиугольников. Это годится для удаления отдельных пикселей-выскочек и шума в один пиксель, не распространяя шум и не смазывая деталей изображения. Аккуратное использование параметра радиуса
улучшит работу фильтра.
Промежуточные значения Альфа
дадут результат между сглаживанием и удалением пикселей-выскочек. Для незаметного преобразования лучше начать со значения Альфа
, равного 0,8 и Радиуса
, равного 0,6. Для более видимого эффекта выберите Альфа
1,0 и Радиус
1,0.
Этот тип фильтра применяет фильтр сглаживания адаптивно по всему изображению. Для каждого пикселя высчитывается разброс значений пикселей окружающего шестиугольника, и применяется сглаживание, по силе обратно пропорциональное разбросу значений. Фильтр считает, что если разброс маленький, то это из-за шума, а если разброс большой, то это детали изображения. Параметр Радиус
определяет размер рабочей области фильтра, но лучше держать его в диапазоне от 0,8 до 1,0, иначе разброс значений не будет иметь смысла. Параметр Альфа
определяет шумовой порог, сверх которого сглаживания будет меньше. Это означает, что маленькие значения параметра Альфа
дадут незаметный эффект, тогда как большие значения сгладят всё изображение. Можно начать со значений Аlpha
= 0,2, Радиус
= 1,0, с дальнейшим увеличением и уменьшением параметра Альфа
, чтобы получить нужный результат. Этот тип фильтра лучше всего подходит для удаления шума смешения.
Этот фильтр противоположный фильтру сглаживания. Он усиливает края. Параметр Альфа
определяет силу усиления, от незаметного (0,1) до очевидного (0,9). Параметр Радиус
, как обычно, определяет рабочую область фильтра, но полезные значения находятся в диапазоне от 0,5 до 0,9. Начните со значений Альфа
= 0,3, Радиус
= 0,8.
Разные режимы работы можно применить один за другим для получения нужного результата. К примеру, чтобы получить серое изображение из смешанного чёрно-белого, примените фильтр сглаживания раз или два, а потом незаметное усиление края. Заметьте, что усиление края полезно обычно после одного из нелинейных фильтров (альфа-усечённое среднее или оптимальный расчёт сглаживания), так как усиление края противоположно сглаживанию.
Чтобы уменьшить шум квантизации цвета (например, при преобразовании .gif файлов в 24-битные файлы), можно применить фильтр оптимального расчёта сглаживания (Альфа
= 0,2, Радиус
= 1,0), потом фильтр нахождения медиана (Альфа
= 0,5, Радиус
= 0,55) и возможно фильтр усиления края. Несколько применений фильтра оптимального расчёта сглаживания при уменьшающихся значениях Альфа
более эффективно, чем одно применение с большим значением Альфа
. То есть, существует баланс между эффективностью фильтра и потерей деталей.