Изображение 2x понижающая дискретизация с фильтром Lanczos


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

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

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

I поверьте, что это не так, поэтому мой вопрос таков: : Чего мне не хватает?

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

1 4

1 ответ:

Ядро для 2x понижающей дискретизации приведено в разделе "Децимация на коэффициент 2 с функцией lanczos2 sinc" на странице 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 для интерполяции с коэффициентом 2.