通过整数因子对图像进行下采样

信息处理 图像处理 采样
2022-01-14 02:20:16

当通过整数因子对图像进行下采样时,显而易见的方法是将输出图像的像素设置为输入图像中相应块的平均值。nn×n

我记得模糊地在某处读到这种方法不是最佳的(对不起,我不记得任何细节)

是否真的有更好的方法(如果有,上述方法在哪里失败,尽管它似乎“显然”正确)?我对信号处理了解不多,这个问题只是我感兴趣。

2个回答

对图像进行下采样会减少可以表示信号的样本数量。在频域方面,当对信号进行下采样时,信号的高频部分将与低频部分混叠。当应用于图像处理时,期望的结果是只保留低频部分。为此,需要对原始图像进行预处理(混叠过滤)以去除高频部分,以免出现混叠。


去除高频部分(具有最尖锐的截止)的最佳数字滤波器是sinc 函数原因是 Sinc 函数的频域表示在整个低频区域几乎为常数 1,而在整个高频区域几乎为常数 0。

sinc(x)=sin(πx)πx

sinc 滤波器的脉冲响应是无限的。Lanczos 滤波器是一种改进的 sinc 滤波器,它会衰减 sinc 系数,并在值下降到不显着时截断它们。


然而,在频域中最优并不意味着在人眼中最优。有上采样和下采样方法不服从线性变换但产生比线性变换更好的结果。


关于的说法,重要的是要记住,在图像采样期间,高分辨率信号和低分辨率信号之间坐标对应关系的选择不是任意的,也不足以对齐它们在实数或离散数线上的相同原点 (0)。n×n

坐标对应的最低要求是

  1. 通过整数因子对包含任意随机值的图像进行上采样,然后通过相同的整数因子进行下采样,应该会产生相同的图像,其数值变化最小。
  2. 对仅由一个统一值组成的图像进行上采样/下采样,然后进行相反的操作,应该会产生一个由相同值统一组成的图像,并且数值偏差最小。
  3. 重复应用上采样/下采样对应尽可能减少图像内容的偏移。

你是对的,面积平均非常接近你能得到的“最正确”,但问题是在将锐宽 N 线缩小 N 倍时行为不一致。如果线的位置是模对齐的N,你会得到一条清晰的 1 像素线,但如果它大约是 N/2 mod N,你会得到一条非常模糊的线(2 像素宽,一半强度)。这看起来很糟糕,并且对于非线性伽马,它甚至会导致强度差异。(理想情况下,所有重采样都必须使用针对线性强度标度的伽马校正,但实际上几乎没有人这样做,因为它真的很昂贵。)

如果您想对此进行改进,您首先需要接受这样一个事实,即在某些情况下减少模糊是不可能的,因此获得均匀输出的唯一方法就是增加模糊。理想的方法是使用半径大于 N/2 的高斯核,而不是阶梯函数,作为与源图像的卷积函数。但是,如果您已经拥有 N×N 区域平均实现,则一种廉价的方法来进行近似,只需将 (1/4,1/2,1/4) 模糊卷积应用于生成的下采样图片。