Фильтр Ланцоша (Snl,mj Lguekog)
Фильтр Ла́нцоша — способ математической обработки рядов данных. Применяется либо для интерполяции функции между заданными точками, либо в качестве фильтра нижних частот.
Наиболее часто применяется в обработке оцифрованных изображений, для изменения их разрешения — (передискретизации).
Назван в честь предложившего этот метод обработки данных венгерского учёного Корнелия Ланцоша (венг. Lánczos Kornél).
Идея фильтра основана на применении нормированной функция sinc (x) с растянутым по оси главным лепестком и равной нулю вне заданного параметром ширины интервала.
Принцип обработки данных фильтром Ланцоша
[править | править код]![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Lanczos-windows.svg/220px-Lanczos-windows.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Lanczos-kernel.svg/220px-Lanczos-kernel.svg.png)
Метод связан с оконной функцией Ланцоша, представляющей собой главный лепесток функции sinc (x), вне этого лепестка оконная функция равна нулю:
Отфильтрованная функция является дискретной сверткой исходной дискретной функции заданной упорядоченным массивом выборок с функцией называемой ядром Ланцоша[1]:
здесь символом обозначена целая часть числа
Ядро Ланцоша представляет собой произведение функции sinc (x) на оконную функцию Ланцоша, по определению равную нулю вне заданного параметром носителя функции :
или:
Применение оконной функции обеспечивает меньший «звон» на резких переходах яркости при обработке изображений чем усеченная функция sinc.
Применение фильтра Ланцоша при обработке изображений
[править | править код]![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Lanczos_interpolation_-_Sheet_music%2C_original.jpg/220px-Lanczos_interpolation_-_Sheet_music%2C_original.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Lanczos_interpolation_-_Sheet_music%2C_interpolated.jpg/220px-Lanczos_interpolation_-_Sheet_music%2C_interpolated.jpg)
При обработке изображений, так как они являются двумерными функциями для свертки применяется двумерное ядро Ланцоша:
Применение этого фильтра позволяет добиться высокой чёткости изображения, но при обработке возможно появление нежелательных артефактов типа звона[англ.]. Это искажение заключается в появлении вокруг контрастных переходов яркости узких контрастных ореолов, что позволяет сохранить резкость контрастных линий при сохранении достаточной гладкости тональных переходов.
Возникновение ореолов обусловлено тем, что при значении параметра ядро Ланцоша принимает отрицательные значения при некоторых значениях аргумента. Поэтому обработанный сигнал может принимать даже отрицательные значения при положительных значениях выборок.
При практической обработке изображений удовлетворительное качество достигается при значении параметра 2 или 3.
Примечания
[править | править код]- ↑ Wilhelm Burger, Mark J. Burge. Principles of digital image processing: core algorithms (англ.). — Springer, 2009. — P. 231—232. — ISBN 978-1-84800-194-7.
Ссылки
[править | править код]- Anti-Grain Geometry — Demo Examples image_filters.cpp — пример реализации различных фильтров на C++ (англ.)
- imageresampler класс C++ для фильтрации изображений, находящийся в общественном достоянии (англ.)