频域中的核卷积 - 循环填充

信息处理 图像处理 过滤器 傅里叶变换 算法 卷积
2021-12-27 03:28:58

我不知道这是否是发布此内容的正确位置,但我想是的。

我知道频率乘法 = 离散信号(向量)在时间空间中的循环卷积。

我也知道“仅当在 DFT 之前用零填充时,卷积定理才会产生所需的线性卷积结果,使得它们各自的长度为,基本上将所有循环归零文物。”x(n)h(n)Nx+Nh1

一切都适用于向量..但我的目标是与本文中的矩阵进行循环卷积:

Victor Podlozhnyuk (nVidia) - 基于 FFT 的二维卷积

如果您观察前两个图(图 1 和图 2),您会发现内核以一种我以前从未见过的奇怪方式填充,这是什么?

2个回答

在我的StackExchange Signal Processing Q38542 GitHub 存储库中(请参阅文件夹中的频域中应用图像过滤(循环卷积)SignalProcessing\Q38542),您将能够看到在空间域和频域中实现 2D 循环卷积的代码。

注意功能CircularExtension2D()
此功能在频域工作之前对齐图像和内核之间的轴原点。
请记住,对于离散信号,在频域分析中对信号的隐含假设是周期性的(循环)。
这基本上是基于 FFT 的 2D 循环卷积中的内容。

在离散情况下,确实可以通过频域中的元素乘法来应用循环卷积。

通过适当的填充,可以使用循环卷积应用线性卷积,因此也可以使用频域中的乘法来实现线性卷积。

看:

在此处输入图像描述

关于你的问题:

  1. 过滤器只是一个数字数组。只要您在 2D 循环卷积之后,过滤器就没有任何限制。如果它对 2D 空间循环卷积有效,则它对频域循环卷积有效。
  2. 最多浮点量化误差在数学上都是等价的(参见卷积定理)。
  3. 如果卷积核的大小与图像相似,并且两者都足够大,则频域卷积比空间域更有效。

图 1 和图 2 没有显示任何填充。较大的矩阵是数据(可能是图像)矩阵,而不是填充的内核矩阵。这些图只是显示了卷积的圆形方面如何在二维中工作。