图像下采样的低通滤波器参数

信息处理 图像处理 高斯
2021-12-31 08:45:51

我需要将图像水平缩小垂直 <)。sxsysxsy1

我想在下采样之前使用有限的低通滤波器。n×m

我应该如何确定低通滤波器参数(和高斯)以将其作为的函数?n,mσsxsy

具体来说,我对的情况很感兴趣。sx=sy=1/2

4个回答

您必须考虑两个图像之间奈奎斯特频率的变化。如果原始图像的奈奎斯特频率为 N,则下采样图像将具有较低的奈奎斯特频率 xN,其中 x 与最终图像和初始图像之间的尺寸比有关。在对原始图像进行下采样之前,您需要删除那些高于 xN 的空间频率。

图像空间中的高斯功率谱,在频率空间中也是高斯的。如果我们暂时忽略第二维,图像空间中的高斯被定义为 exp(-x^2/s^2),其中 x 代表您的像素。这以 exp(-w^2*s^2) 的形式映射到频率空间,其中 w 是频率。sigma 参数 (s) 表明图像空间中的宽高斯对应于频率空间中的窄高斯。

您想选择一个 sigma 参数,该参数在频率空间中的值对应于下采样图像的奈奎斯特频率。

已经指出,nm将根据选择σ.

我花了一些时间思考如何选择σ最好的。以下是我的考虑。tl;博士:也许我犯了一些错误,但是σ23.37看起来像因子 2 下采样的不错选择。

如果您要进行大幅缩小(例如 2x、3x、4x),您可以进行像素平均以实现良好的抗锯齿。这就是为什么抗锯齿使用大量额外的 CPU/GPU 以使视频游戏看起来更清晰的原因。

由于您要从 1000x1000 到 707x707 图像(只是比例因子的一个示例),所以您认为混叠可能是一个问题是正确的。

值得庆幸的是,这是许多人已经遇到的问题,并且已经做了很多工作来解决。在许多情况下,双三次插值是要走的路。这里有一些不同插值方法的示例:

http://www.compuphase.com/graphic/scale.htm

OpenCV 的 resize 内置了几个这样的方法:

http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html#cv-resize

如果您已经使用了其中几种插值方法并且它们效果不佳,请发布某种示例源图像和示例结果图像,以显示不足之处。我们需要它来诊断问题并尝试提出一个好的解决方案。

我真的没有给你一个好的答案,但这里有两个你可以尝试的选项:

  • 在计算机视觉中,通常通过应用宽度(以像素为单位)在 5 到 9 之间的高斯滤波器来处理此重新缩放因子。您可以找到相应的σ高斯的,因为像素宽度经典地等于3σ.
  • 如果您愿意进行精细的信号采样计算,那么为什么不使用傅里叶变换呢?对图像进行 FFT,只保留与目标大小相对应的子部分,然后反转变换。这将在您的频谱上应用抗混叠滤波器。如果您有太多的伪影(波纹、振铃),请在您的高斯滤波器频谱上应用,其宽度对应于您的目标大小。