Изображение 2x понижающая дискретизация с фильтром Lanczos
Я пытаюсь реализовать понижающую дискретизацию изображения с помощью Lanczos2.
Однако ядро, по-видимому, имеет нули везде (так как sin(pi*x)=0, если x целое число) , кроме Центрального пикселя.Таким образом, если коэффициент понижающей дискретизации является целым числом (например, выходной размер равен 1/2 от исходного размера в каждом измерении), то понижающая дискретизация Lanczos дает тот же результат, что и интерполяция ближайших соседей (просто принимая каждый второй пиксель в 2x понижающей дискретизации).
I поверьте, что это не так, поэтому мой вопрос таков: : Чего мне не хватает?
Как использовать фильтр lanczos2 для 2x понижающей дискретизации и ожидается ли, что результат будет отличаться от простого взятия каждого другого пикселя?
1 ответ:
Ядро для 2x понижающей дискретизации приведено в разделе "Децимация на коэффициент 2 с функцией lanczos2 sinc" на странице 10 ссылки , которую вы связали , с коэффициентами:
Это ядро получается путем вычисления заданной функции lanczos2 (x) при значениях0, -0.032, 0, 0.284, 0.496, 0.284, 0, -0.032, 0
x=0.5n
, гдеn
- номер выборки (целое число). Это отражает тот факт, что выходная частота составляет половину исходной частоты дискретизации (таким образом, требуется полудиапазонный фильтр перед децимацией пикселей, чтобы избежать наложение). P.S.: ядро с нулями везде, кроме Центрального пикселя, который вы получили, обычно используется (хотя реализации обычно оптимизируют это ядро как простую копию пикселя) в сочетании с ядром фазы 1/2 для интерполяции с коэффициентом 2.