FFT的高斯模糊

时间:2010-08-24 16:02:50

标签: image-processing fft blur gaussian

我尝试使用FFT实现高斯模糊,可以在这里找到以下方法。

  

这意味着你可以拿走   图像的傅里叶变换和   过滤,乘以(复数)   结果,然后采取逆   傅立叶变换。

我有一个内核K,一个7x7矩阵 和图像I,512x512矩阵。

我不明白如何将K乘以I. 通过使K像我一样大(512x512),这是唯一的方法吗?

2 个答案:

答案 0 :(得分:16)

是的,你确实需要通过用零填充来使K与我一样大。此外,在填充之后,但在进行内核的FFT之前,需要使用环绕转换它,以便内核的中心(高斯的峰值)为(0,0)。否则,您的过滤图像将被翻译。或者,您可以在完成后翻译生成的过滤图像。

另一点:对于不使用FFT的小内核实际上可能更快。 2D高斯内核是可分离的,这意味着您可以将其分为x和y的两个1D内核。然后,您可以在空间域中的x和y方向上进行两次1D卷积,而不是2D卷积。对于较小的内核,可能最终比使用FFT在频域中进行卷积更快。

答案 1 :(得分:2)

如果您对像素着色器感到满意,并且如果FFT不是您的主要目标,但是使用高斯模糊内核IS进行卷积,那么我可以推荐我的教程on what convolution is

问候。