Русская Википедия:Фильтр Ланцоша

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Фильтр Ла́нцоша — способ математической обработки рядов данных. Применяется либо для интерполяции функции между заданными точками, либо в качестве фильтра нижних частот.

Наиболее часто применяется в обработке оцифрованных изображений, для изменения их разрешения — (передискретизации).

Назван в честь предложившего этот метод обработки данных венгерского учёного Корнелия Ланцоша (Шаблон:Lang-hu).

Идея фильтра основана на применении нормированной [[sinc|функция Шаблон:Math]]<math>= \frac{\sin \pi x}{\pi x}</math> с растянутым по оси <math>x</math> главным лепестком и равной нулю вне заданного параметром ширины <math>a</math> интервала.

Принцип обработки данных фильтром Ланцоша

Файл:Lanczos-windows.svg
Весовая оконная функция Ланцоша при значении параметра a = 1, 2, 3.
Файл:Lanczos-kernel.svg
Графики функции ядра Ланцоша для Шаблон:Math и Шаблон:Math.

Метод связан с оконной функцией Ланцоша, <math>L_w(x),</math> представляющей собой главный лепесток функции Шаблон:Math, вне этого лепестка оконная функция равна нулю:

<math>L_w(x) = \mathrm{sinc}({x}/{a}).</math>

Отфильтрованная функция <math>S(x)</math> является дискретной сверткой исходной дискретной функции заданной упорядоченным массивом выборок <math>s_i</math> с функцией называемой ядром Ланцоша[1]:

<math>S(x) = \sum_{i=\lfloor x \rfloor - a + 1}^{\lfloor x \rfloor + a} s_{i} L(x - i),</math>

здесь символом <math>\lfloor x \rfloor</math> обозначена целая часть числа <math>x.</math>

Ядро Ланцоша представляет собой произведение функции Шаблон:Math на оконную функцию Ланцоша, по определению равную нулю вне заданного параметром носителя функции <math>a</math>:

<math> L \left( x \right) = \begin{cases} \operatorname{sinc} \left( x \right) \operatorname{sinc} \left( \frac x a \right), & \text{при } -a < x < a, \\ 0, & \text{иначе} \end{cases}, </math>

или:

<math>L(x) = \begin{cases}
1  & \text{если}\ x = 0, \\
\dfrac{a \sin(\pi x) \sin(\pi x / a)}{\pi^2 x^2} & \text{если}\ -a \leq x < a \ \text{и}\ x \neq 0, \\
0 & \text{иначе}.

\end{cases}</math>

Применение оконной функции обеспечивает меньший «звон» на резких переходах яркости при обработке изображений чем усеченная функция sinc.

Применение фильтра Ланцоша при обработке изображений

Файл:Lanczos interpolation - Sheet music, original.jpg
Исходное черно-белое изображение нотной записи с невысоким разрешением, искаженное при сохранении пиксельного изображения в формате JPEG
Файл:Lanczos interpolation - Sheet music, interpolated.jpg
То же самое изображение реасемплированное с пятикратным увеличением количества пикселей по обеим осям с помощью фильтра Ланцоша

При обработке изображений, так как они являются двумерными функциями для свертки применяется двумерное ядро Ланцоша:

<math>L(x, y) = L(x)L(y).</math>

Применение этого фильтра позволяет добиться высокой чёткости изображения, но при обработке возможно появление нежелательных артефактов типа Шаблон:Iw. Это искажение заключается в появлении вокруг контрастных переходов яркости узких контрастных ореолов, что позволяет сохранить резкость контрастных линий при сохранении достаточной гладкости тональных переходов.

Возникновение ореолов обусловлено тем, что при значении параметра <math>a > 1</math> ядро Ланцоша принимает отрицательные значения при некоторых значениях аргумента. Поэтому обработанный сигнал может принимать даже отрицательные значения при положительных значениях выборок.

При практической обработке изображений удовлетворительное качество достигается при значении параметра <math>a</math> 2 или 3.

Примечания

Шаблон:Примечания

Ссылки

См. также