使用FFTW进行图像卷积时,内核的中心位置是什么?

ZV1*_*ZV1 6 fft image-processing convolution fftw

我正在尝试使用FFTW进行图像卷积.

首先,为了测试系统是否正常工作,我执行了fft,然后执行了反向fft,并且可以获得返回的完全相同的图像.

然后向前迈出一小步,我使用了身份内核(即内核[0] [0] = 1,而所有其他组件都等于0).我在图像和内核之间(都在频域中)采用了分量方面的产品,然后进行了反向fft.从理论上讲,我应该能够得到相同的图像.但我得到的结果甚至都不接近原始图像.我怀疑这与我将内核置于频域之前的内核有关(因为我将"1"置于内核[0] [0],它基本上意味着我将正面部分置于顶部剩下).谁能告诉我这里出了什么问题?

tru*_*cks 0

我认为您对 Identity 内核的理解可能有所偏差。Identity 内核的 1 应该位于 2D 内核的中心,而不是 0, 0 位置。

以 3 x 3 为例,您的设置如下:

1, 0, 0
0, 0, 0
0, 0, 0
Run Code Online (Sandbox Code Playgroud)

它应该是

0, 0, 0
0, 1, 0
0, 0, 0
Run Code Online (Sandbox Code Playgroud)

也看看这个

什么是“无为”卷积核

另请参阅第 3 页底部的此处。

http://www.fmwconcepts.com/imagemagick/digital_image_filtering.pdf