4

我在频域中阅读了有关高斯滤波器的信息,但这里有些地方我无法理解:

  1. 高斯滤波器会一直是方阵吗?

  2. 如果 1 的答案是肯定的,如果我的图像是矩形矩阵会发生什么?在 Matlab 中,我读取图像,然后fft2将其从空间域转换为频域,然后将ffshift其集中。我想要的是将图像的频域矩阵乘以高斯滤波矩阵,然后使用 将结果转换为空间域ifft2,但是由于高斯滤波矩阵和图像频域矩阵的大小不同,它们不能相乘. (我没有在这里使用conv2fspectial)。

4

1 回答 1

1

高斯滤波器实际上是圆形的,因为它是距中心距离的函数。使用矩形矩阵是因为它更方便。
为了克服尺寸差异,您可以做的是对过滤器进行零填充:

img = imread( imgFileName ); % read image, use gray-level images here.
IMG = fft2( img ); % Fourier of img
sz = size( img );
h = fspecial( 'gaussian', sz, sigma ); % create a filter with std sigma same size as img
H = fft2( h ); % Fourier of filter
F = IMG.*H; % filter in Fourier space
f = ifft2( F ); % back to spatial domain. 
于 2013-03-16T17:30:54.380 回答