我正在尝试使用 2D FFT 将过滤器应用于图像。我有滤波器矩阵(卷积核等),但如果我想使用 fft,我需要将滤波器和图片矩阵扩展为 2 方矩阵的幂。
首先我用零扩展它(所以图片和过滤器的矩阵将在 2 矩阵的大幂次的左上角),我得到了这个结果
然后我尝试了我在应用没有 fft 的卷积时对图片矩阵所做的事情,从每侧使用滤波器维度/2 的填充图片矩阵,然后使用简单的扩展滤波器矩阵到 2 的幂矩阵的填充矩阵与 fft 和 i 进行卷积明白啦
这是原图。
关于算法:我在两个扩展矩阵上应用 2d fft,而不是在我做简单逆 fft 之后的点乘矩阵。图片矩阵也是从 0 到 16M 的数字(前 8 位是红色,第二个 8 位是绿色,第三个 8 位是蓝色)
我认为问题在于我如何将图片和滤波器矩阵扩展为 2 矩阵的平方幂,但我不确定。我测试了 fft 函数(fft 和反 fft,我得到了相同的图片(没有逐点乘法))
过滤器也是
0 .2 0
.2 .2 .2
0 .2 0