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


16

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

我记得在某处模糊地阅读过该方法不是最佳方法(对不起,我不记得任何细节)

是否存在更好的方法(如果这样,虽然“显然”正确),上述方法在哪里失败?我对信号处理了解不多,这个问题让我很感兴趣。


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

Answers:


16

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


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

辛克X=πXπX

Sinc滤波器的脉冲响应是无限的。Lanczos滤波器是一种改进的Sinc滤波器,它会衰减Sinc系数,并在数值下降到无关紧要时将其截断。


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


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

坐标对应中的最低要求是

  1. 用整数因子对包含任意随机值的图像进行上采样,然后按相同的整数因数进行下采样,应该会导致同一图像的数值变化最小。
  2. 对仅由一个均匀值组成的图像进行上采样/下采样,然后执行相反的操作,应得到均匀地由相同值组成的图像,且数值偏差最小。
  3. 重复应用成对的上采样/下采样应尽可能减少图像内容的偏移。

您将sinc函数的转换在各个区域中“接近” 1和0表示什么?

@蒂姆:吉布斯现象接近于正弦滤波器的截止频率。
rwong 2011年

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

6

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.