3.6. Нелинейный фильтр
| 3. Фильтры усиления |

### 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) и возможно фильтр усиления края. Несколько применений фильтра оптимального расчёта сглаживания при уменьшающихся значениях `Альфа` более эффективно, чем одно применение с большим значением `Альфа`. То есть, существует баланс между эффективностью фильтра и потерей деталей.

3.5. Удаление штрихов |  | 3.7. Удаление эффекта красных глаз