我需要按水平和垂直(, <)的缩小图像。s y s x s y 1
我想在下采样之前使用有限的低通滤波器。
我应该如何确定低通滤波器参数(和高斯)以将其作为和的函数?σ 小号X 小号ÿ
具体来说,在的情况下,我很有趣。
我需要按水平和垂直(, <)的缩小图像。s y s x s y 1
我想在下采样之前使用有限的低通滤波器。
我应该如何确定低通滤波器参数(和高斯)以将其作为和的函数?σ 小号X 小号ÿ
具体来说,在的情况下,我很有趣。
Answers:
您必须考虑两个图像之间的奈奎斯特频率变化。如果原始图像的奈奎斯特频率为N,则降采样后的图像将具有较低的奈奎斯特频率xN,其中x与最终图像和初始图像之间的尺寸比有关。在对原始图像进行下采样之前,您需要删除那些高于xN的空间频率。
图像空间中高斯的功率谱在频率空间中也是高斯。如果暂时忽略第二维,则图像空间中的高斯定义为exp(-x ^ 2 / s ^ 2),其中x表示像素。这被映射到exp(-w ^ 2 * s ^ 2)的频率空间,其中w是频率。σ参数表示图像空间中的宽高斯与频率空间中的窄高斯相对应。
您想选择一个sigma参数,该参数在频率空间中以与下采样图像的奈奎斯特频率相对应的频率产生非常低的值。
如果您要缩小尺寸(例如2倍,3倍,4倍),则可以对像素进行平均以实现良好的抗锯齿效果。这就是为什么抗锯齿使用大量额外的CPU / GPU来使视频游戏看起来更清晰的原因。
由于您要将图像从1000x1000转换为707x707(仅是比例因子的一个示例),因此您可以正确地解决混叠问题。
值得庆幸的是,这是许多人已经遇到并做了很多工作要解决的问题。在许多情况下,双三次插值法是可行的方法。以下是一些不同插值方法的示例:
http://www.compuphase.com/graphic/scale.htm
OpenCV的调整大小具有一些内置的方法:
http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html#cv-resize
如果您已经试用了其中几种插值方法,但效果不佳,请张贴一些示例源图像和示例结果图像以显示不足之处。我们将需要它来诊断问题并尝试提出一个好的解决方案。