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

Этот фильтр может исполнять три функции, в зависимости от значения параметра Альфа.

Альфа-усечённое среднее (Альфа от 0 до 0,5)

Значение центральной точки будет заменено на среднее значение семи значений шестиугольника, но эти семь значений сначала сортируются по альфа, а затем первое и последнее значения удаляются из вычисления среднего. Это означает, что при альфа равном 0,0 фильтр становится обычной свёрткой (т.е. фильтр усреднения и сглаживания), а радиус определяет силу фильтра. Для незаметного преобразования, лучше начать со значения альфа равном 0,0, и радиуса равном 0,55. Для более видимого эффекта, выберите альфа 0,0 и радиус 1,0.

При альфа равном 0,5 фильтр заменяет значение точки на медиан семи шестиугольников. Это годится для удаления отдельных точек-выскочек и шума в одну точку, не распространяя шум и не смазывая деталей изображения. Аккуратное использование параметра радиуса улучшит работу фильтра. Промежуточные значения альфа дадут результат между сглажеванием и удалением точек-выскочек. Для незаметного преобразования лучше начать со значения альфа равном 0,4, и радиуса равном 0,6. Для более видимого эффекта, выберите альфа 0,5 и радиус 1,0.

Оптимальный расчёт сглаживания (альфа от 1,0 до 2,0)

Этот тип фильтра применяет фильтр сглаживания адаптивно по всему изображению. Для каждой точки высчитывется разброс значений точек окружающего шестиугольника, и применяется сглаживание, по силе обратно пропорциональное разбросу значений. Фильтр считает, что если разброс маленький, то это из-за шума, а если разброс большой, то это детали изображения. Радиус определяет размер рабочей области фильтра, но лучше держать его в диапазоне от 0,8 до 1,0, иначе разброс значений не будет иметь смысла. Альфа определяет шумовой порог, сверх которого сглаживания не будет. Можно начать со значений <code>alpha = 1,2</code>, <code>radius = 1,0</code>, с дальнейшим увеличением и уменьшением параметра альфа, чтобы получить нужный результат. Этот тип фильтра лучше всего подходит для удаления шума смешения.

Усиление края (альфа от -0,9 до -0,1)

Этот фильтр противоположный фильтру сглаживания. Он усиливает края. Параметра альфа определяет силу усиления, от незаметного (-0.1) до очевидного (-0.9). Радиус, как обычно, определяет рабочую область фильтра, но полезные значения находятся в диапазоне от 0,5 до 0,9. Начните со значений <code> альфа = - 0.3 </code>, <code> радиус = 0.8 </code>.

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

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

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