傅里叶域高斯滤波器
Gaussian filter in fourier domain
我尝试用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);
试试这个:
TF_mask=fft2(ifftshift(mask));
DFT(fft
计算)假定原点位于 top-left 像素。 mask
原点位于图像中间。 ifftshift
将原点移动到 top-left 像素。
我尝试用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);
试试这个:
TF_mask=fft2(ifftshift(mask));
DFT(fft
计算)假定原点位于 top-left 像素。 mask
原点位于图像中间。 ifftshift
将原点移动到 top-left 像素。