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

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

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

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

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

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

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


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

This is something of a swiss army knife filter. It has 3 distinct operating modes. In all of the modes each pixel in the image is examined and processed according to it and its surrounding pixels values. Rather than using 9 pixels in a 3x3 block, it uses a hexagonal block whose size can be set with the Radius option.

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

Этот фильтр можно найти в меню ФильтрыУлучшениеНелинейный фильтр….

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

4.11.3. Параметры

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

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

Просмотр

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

Фильтр

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

Альфа-канал

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

Радиус

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

4.11.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, Радиус = 0,8.

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

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

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