使用 Lanczos 过滤器对图像进行 2 倍下采样
Image 2x downsampling with Lanczos filter
我正在尝试使用 Lanczos2 实现图像下采样。
然而,内核似乎到处都是零(因为如果 x 是整数,则 sin(pi*x)=0)except at the center pixel。
因此,如果下采样因子是一个整数(例如,输出大小是每个维度原始大小的 1/2),那么 Lanczos 下采样会产生与最近邻插值完全相同的结果(只需取每个2X 下采样中的其他像素)。
我认为情况并非如此,所以我的问题是:
我错过了什么?
如何使用 lanczos2 滤镜进行 2 倍下采样,结果是否与简单地每隔一个像素采样不同?
2 倍下采样的内核在 reference you linked 第 10 页的 "Decimation by factor of 2 with the Lanczos2 sinc function" 节中给出,系数为:
0, -0.032, 0, 0.284, 0.496, 0.284, 0, -0.032, 0
这个内核是通过在 x=0.5n
的值处评估给定的 lanczos2(x) 函数获得的,其中 n
是样本编号(整数)。这反映了输出速率是原始采样率的一半这一事实(因此在像素抽取之前需要一个半带滤波器以避免混叠)。
P.S.: 除了您获得的中心像素外,内核到处都是零,通常会结合使用(尽管实现通常会将此内核优化为简单的像素副本) interpolation 的第 1/2 阶段内核乘以因子 2.
我正在尝试使用 Lanczos2 实现图像下采样。
然而,内核似乎到处都是零(因为如果 x 是整数,则 sin(pi*x)=0)except at the center pixel。
因此,如果下采样因子是一个整数(例如,输出大小是每个维度原始大小的 1/2),那么 Lanczos 下采样会产生与最近邻插值完全相同的结果(只需取每个2X 下采样中的其他像素)。
我认为情况并非如此,所以我的问题是: 我错过了什么?
如何使用 lanczos2 滤镜进行 2 倍下采样,结果是否与简单地每隔一个像素采样不同?
2 倍下采样的内核在 reference you linked 第 10 页的 "Decimation by factor of 2 with the Lanczos2 sinc function" 节中给出,系数为:
0, -0.032, 0, 0.284, 0.496, 0.284, 0, -0.032, 0
这个内核是通过在 x=0.5n
的值处评估给定的 lanczos2(x) 函数获得的,其中 n
是样本编号(整数)。这反映了输出速率是原始采样率的一半这一事实(因此在像素抽取之前需要一个半带滤波器以避免混叠)。
P.S.: 除了您获得的中心像素外,内核到处都是零,通常会结合使用(尽管实现通常会将此内核优化为简单的像素副本) interpolation 的第 1/2 阶段内核乘以因子 2.