3.6. Нелинейный фильтр

3.6.1. Общая информация

Рисунок 16.24. Пример применения нелинейного фильтра

Пример применения нелинейного фильтра

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

Пример применения нелинейного фильтра

После применения нелинейного фильтра


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

У этого фильтра есть три режима работы. В каждом режиме фильтр работает над одной точкой и преобразует её в зависимости от её значения и значений окружающих точек. Фильтр делает 7 выборок по вершинам шестиугольника, вместо обычных 9-ти точек в области 3x3. Размер шестиугольника определяется параметром радиуса.

3.6.2. Активация фильтра

Этот фильтр находится в меню ФильтрыУсилитьНелинейный фильтр

Для работы фильтра необходим канал альфа. Иначе этот пункт меню недоступен.

3.6.3. Параметры

Рисунок 16.25. Параметры фильтра «Нелинейный фильтр»

Параметры фильтра «Нелинейный фильтр»

Просмотр

Если выбран, то окно просмотра обновляется по мере изменения параметров.

Фильтр

Рабочий режим описан ниже.

Альфа-канал

Определяет степень применения фильтра. Допустимые значения от 0,0 до 1,0. Точное значение этого параметра зависит от рабочего режима. Этот параметр сравним с параметром альфа в приложении pnmnlfilt.

Радиус

Определяет размер области выборки вокруг каждой точки. Диапазон значений от 0,33 до 1,00. 0,33 означает только саму точку, то есть у фильтра нет эффекта. 1,00 означает все точки в квадрате 3 на 3 вокруг точки.

3.6.4. Режимы работы

Этот фильтр может выполнить несколько разных функций:

Альфа-усечённое среднее

Значение центральной точки будет заменено на среднее значение семи значений шестиугольника, но эти семь значений сначала сортируются по альфа, а затем первое и последнее значения удаляются из вычисления среднего. Это означает, что при Альфа равном 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

3.6.4.1. Смешанное применение

Разные режимы работы можно применить один за другим для получения нужного результата. К примеру, чтобы получить серое изображение из смешанного чёрно-белого, примените фильтр сглаживания раз или два а потом незаметное усиление края. Заметьте, что усиление края полезно обычно после одного из нелинейных фильтров (альфа-усечёное среднее или оптимальный расчёт сглаживания), так как усиление края протовоположно сглаживанию.

Чтобы уменьшить шум квантизации цвета (на пример, при преобразовании .gif файлов в 24-битные файлы), можно применить фильтр оптимального расчёта сглаживания (Альфа = 0,2, Радиус = 1,0), потом фильтр нахождения медиана (Альфа = 0,5, Радиус = 0,55) и возможно фильтр усиления края. Несколько применений фильтра оптимального расчёта сглаживания при уменьшающихся значениях Альфа более эффективно, чем одно применение с большим значением Альфа. То есть, существует баланс между эффективностью фильтра и потерей деталей.