5

我正在尝试使用 Lanczos2 实现图像下采样。

但是,内核似乎到处都有零(因为如果 x 是整数,则 sin(pi*x)=0)除了中心像素

因此,如果下采样因子是整数(例如,输出大小是每个维度上原始大小的 1/2),那么 Lanczos 下采样会产生与最近邻插值完全相同的结果(仅在 2X 下采样中每隔一个像素取)。

我相信这不是故意的,所以我的问题是:我错过了什么?

如何使用 lanczos2 过滤器进行 2 倍下采样,结果是否与简单地采用其他所有像素不同?

4

1 回答 1

7

2x 下采样的内核在您链接的参考资料的第 10 页上的“使用 Lanczos2 sinc 函数进行 2 倍抽取”部分给出,其系数为:

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

该内核是通过在样本数(整数)的值x=0.5n处评估给定的 lanczos2(x) 函数而获得的。n这反映了输出速率是原始采样率的一半的事实(因此需要在像素抽取之前使用半带滤波器以避免混叠)。

PS:除了您获得的中心像素外,所有地方都为零的内核通常会与相位 1/2 内核一起使用(尽管实现通常会将此内核优化为简单的像素副本),以进行一个因子插值2.

于 2015-07-06T17:02:36.417 回答