傅立叶域中的高斯滤波器

问题描述 投票:0回答:1

我尝试用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);
matlab fft gaussian
1个回答
2
投票

试试这个:

TF_mask=fft2(ifftshift(mask));

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

© www.soinside.com 2019 - 2024. All rights reserved.