我正在尝试使用 FFT 来实现高斯模糊,并且可以在这里找到以下方法。
这意味着您可以采取
图像的傅里叶变换和
过滤,乘以(复数)
结果,然后取逆
傅里叶变换。
我有一个内核 K,一个 7x7 矩阵
和一个图像输入,一个 512x512 矩阵。
我不明白如何将 K 乘以 I。
唯一的方法是使 K 与 I (512x512) 一样大吗?
是的,您确实需要通过用零填充来使 K 与 I 一样大。另外,在填充之后,但在对内核进行 FFT 之前,您需要对其进行环绕平移,以使内核的中心(高斯峰值)位于 (0,0)。否则,您的过滤图像将被翻译。或者,完成后您可以翻译生成的过滤图像。
另一点:对于小内核,不使用 FFT 实际上可能会更快。 2D 高斯核是可分离的,这意味着您可以将其分为 x 和 y 的两个 1D 核。然后,您可以在空间域中的 x 和 y 方向上执行两个 1D 卷积,而不是 2D 卷积。对于较小的内核,最终可能比使用 FFT 在频域中进行卷积更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)