假设点扩散函数 h 对于模糊图像 B 是已知的。
如果我们想应用一种逆滤波方法(例如,无噪声图像的直接逆滤波、维纳滤波器、约束最小二乘法等),我们可以/是否填充模糊图像 B 以除以 H(h 的 DFT)?(H 的尺寸将等于填充 B 的尺寸)
我注意到使用零填充不会产生好的结果,而应用没有填充的逆会产生更好的结果
假设点扩散函数 h 对于模糊图像 B 是已知的。
如果我们想应用一种逆滤波方法(例如,无噪声图像的直接逆滤波、维纳滤波器、约束最小二乘法等),我们可以/是否填充模糊图像 B 以除以 H(h 的 DFT)?(H 的尺寸将等于填充 B 的尺寸)
我注意到使用零填充不会产生好的结果,而应用没有填充的逆会产生更好的结果
这里要理解的正是你所有的转换和数据摆弄所做的事情。
我们将考虑一个更容易解释和思考的一维离散时间信号。这些论点很容易扩展到更高的维度。
通过对该信号进行 DFT,该信号已被窗口化为有限数量的样本 N,以创建一个帧,人们隐含地假设 N 长度的窗口化信号在时域中无限重复,使得第零个样本与第 (N-1) 个样本相邻。
这种平铺对执行任何过滤时发生的情况的影响是双重的:
1)如果第0个(也是第N个)样本和第(N-1)个(也是第-1个)样本之间有很大的步幅,这将在信号中引入大量高频分量这可能不对应于任何物理。
2)傅里叶域中的加窗滤波等价于在时域中与该窗口的逆DFT进行卷积。由于在时域中存在信号的隐式重复,因此帧的较低样本将能量“泄漏”到帧的较高样本中,反之亦然(或者:帧的末端被缠绕并涂抹在一起)。
您无法逃避这些影响,这是进行离散傅立叶域滤波的本质。问题是,人们可以采取任何明智的措施来缓解它们吗?
答案取决于对信号的了解。你提到零抽样。简单的零填充(没有边缘滚降)具有人为地引入大边缘不连续性的效果。这相当于将傅里叶域信号与 Sinc 函数进行卷积,这可能会使所需的逆滤波器复杂化。另一方面,它可以缓解上述第二个问题,因为现在低样本和环绕的高样本之间存在差距。
如果您的信号在帧的边缘自然衰减为零,则零填充是明智的,并且通常可以安全地分离帧的平铺版本。
有多种替代技术可以简单地添加零样本。一种可能是时间反转帧并将其连接到原始帧,制作一个双倍长度的帧。这样就保证了信号没有大的不连续性。您可以在处理结束时将帧切成两半,以取回您实际需要的内容。
另一种技术是将时域信号的边缘滚降为零,通常使用升余弦。这远没有简单地在时域中添加零那么苛刻。一旦信号达到零,如果您愿意,您可以愉快地添加更多零来填充它。滚降的长度是一个设计参数,但一个好的起点是模糊滤镜的长度。
这是一个了解信号和给定调整的效果的案例,以了解它是否会改善结果。我通常希望必须做一些事情来减轻所谓的边缘效应,你表面上试图用零填充来做,但我会尝试更复杂一点。
一个快速的观点,我相信你知道(所以对于其他阅读本文的人)。简单地除以 H 而没有任何形式的正则化通常是一件“坏”的事情。您需要确保信号不会被非常小的 H 值所支配。不过那是另一篇文章!