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

我记得在某处隐隐约约地读到这种方法不是最佳方法(对不起,我不记得任何细节) ,尽管似乎“显然”正确)?我对信号处理了解不多,这个问题让我很感兴趣。

评论

如果您没有信号处理背景,那么外行的解释是:有更好的下采样方法。您的下采样算法从技术上将使图像像素大小减小N BUT,与更好的下采样算法相比,上述算法的质量将大大降低。

#1 楼

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


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

$$ \ text {sinc} (x)= \ frac {\ sin(\ pi x)} {\ pi x} $$

Sinc滤波器的脉冲响应是无限的。 Lanczos滤波器是一种改进的Sinc滤波器,可衰减Sinc系数,并在其值下降到无意义时将其截断。有些上采样和下采样方法不遵循线性变换,但比线性变换产生更好的结果。


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

坐标对应中的最低要求是


应按整数倍对包含任意随机值的图像进行采样,然后按相同的整数因数进行降采样结果在相同的图像上数值变化最小。
对仅由一个均匀值组成的图像进行升采样/降采样,然后执行相反的操作,应得到由相同值均匀组成的图像,且数值偏差最小。
反复应用成对的升采样/降采样应将偏移最小化尽可能包含图片内容。


评论


$ \ begingroup $
在每个区域中将sinc函数转换为“接近” 1和0意味着什么?
$ \ endgroup $
–user42
2011年10月6日在20:19

$ \ begingroup $
@Tim:sinc滤波器截止频率附近的吉布斯现象。
$ \ endgroup $
–rwong
2011年10月6日21:25

$ \ begingroup $
Sinc重采样仅对在频域中感知/处理的信号(例如音频)有意义。图像至少在空间域中被感知(这是有争议的;对重复模式的某些感知是在频域中),并且任何基于频域的变换都会在空间域中产生令人讨厌的失真(振铃等)。空间域。基本上,任何具有任何负系数的卷积/线性运算都将产生令人讨厌的伪影,而具有所有非负系数的任何卷积/线性运算都将产生模糊。
$ \ endgroup $
–R .. GitHub停止帮助ICE
2014年1月12日22:29

#2 楼

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

如果要对此进行改进,则需要首先接受在某些情况下无法减少模糊这一事实,因此获得均匀输出的唯一方法是增加模糊。理想的方法是使用半径大于N / 2的高斯核,而不是阶跃函数,作为与源图像的卷积函数。但是,一种便宜的近似方法是,如果已经有了N-N区域平均实现,则只需对最终的降采样应用(1 / 4,1 / 2,1 / 4)模糊卷积图片。