Изображение 2-кратное понижение частоты дискретизации с фильтром Ланцоша

Я пытаюсь реализовать понижение частоты дискретизации изображения с помощью Lanczos2.

Однако ядро, кажется, имеет нули везде (поскольку sin(pi*x)=0, если x целое число) кроме центрального пикселя.

Таким образом, если коэффициент понижения дискретизации является целым числом (например, выходной размер составляет 1/2 от исходного размера в каждом измерении), то понижение дискретизации Ланцоша дает точно такой же результат, как интерполяция ближайшего соседа (просто берется каждый второй пиксель при 2-кратном понижении дискретизации). ).

Я считаю, что это не так, поэтому мой вопрос: что мне не хватает?

Как использовать фильтр lanczos2 для 2-кратного понижения дискретизации и ожидается ли, что результат будет отличаться от простого взятия каждого второго пикселя?


person Yoav    schedule 10.06.2015    source источник


Ответы (1)


Ядро для 2-кратного понижения частоты дискретизации приведено в разделе «Прореживание в 2 раза с помощью функции sinc Lanczos2» на странице 10 ссылка, которую вы связали, с коэффициентами:

0, -0.032, 0, 0.284, 0.496, 0.284, 0, -0.032, 0

Это ядро ​​получается путем вычисления заданной функции lanczos2(x) при значениях x=0.5n, где n — номер выборки (целое число). Это отражает тот факт, что выходная частота составляет половину исходной частоты дискретизации (таким образом, требуется полуполосный фильтр перед прореживанием пикселей, чтобы избежать наложения).

P.S.: обычно используется ядро ​​с нулями везде, кроме центрального пикселя, которое вы получили (хотя реализации обычно оптимизируют это ядро ​​как простую копию пикселя) в сочетании с ядром фазы 1/2 для интерполяции в два раза.

person SleuthEye    schedule 06.07.2015