傅立叶域中的高斯滤波器

时间:2018-03-10 23:15:18

标签: matlab fft gaussian

我尝试用matlab在傅里叶域中应用高斯滤波器,结果模糊但输出图像像拼图一样凌乱,我不知道为什么!

img='src.pgm';
scale=10;

I=imread(img);
S=size(I);
TF_I=zeros([S(1) S(2)]);

TF_I= fft2(I);

mask = fspecial('gaussian',S(1),scale);

TF_mask=fft2(mask);

TF_out = TF_I.*TF_mask;

img_out=ifft2(TF_out);

img_out=uint8(img_out);

imshow(img_out);

1 个答案:

答案 0 :(得分:2)

试试这个:

TF_mask=fft2(ifftshift(mask));

DFT(fft计算)假设原点位于左上角像素。 mask的原点位于图像中间。 ifftshift将原点移至左上角的像素。