【问题标题】:gaussian blur with FFTFFT 高斯模糊
【发布时间】:2010-08-24 16:02:49
【问题描述】:

我尝试使用 FFT 实现高斯模糊,可以在此处找到以下配方。

这意味着您可以使用 图像的傅里叶变换 过滤,乘以(复数) 结果,然后取反 傅里叶变换。

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

我不明白如何将 K 乘以 I。 使 K 与 I (512x512) 一样大是唯一的方法吗?

【问题讨论】:

    标签: image-processing fft blur gaussian


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      问候。

      【讨论】:

        猜你喜欢
        • 2011-12-07
        • 1970-01-01
        • 2014-07-06
        • 2018-05-01
        • 2015-11-05
        • 1970-01-01
        • 2016-04-30
        • 2023-03-22
        • 1970-01-01
        相关资源
        最近更新 更多