我想使用陷波滤波器消除图像中的周期性噪声。我执行以下步骤:
I = imread('...img....');
ft = fftshift(fft2(I));
[m,n] = size(ft);
filt = ones(m,n);
%filt(......) = 0; % my problem is here
ft = ft .* filt;
ifft_ = ifft2(ifftshift( ft));
so i don't know what exactly to set to zero to get the proper result.
答案 0 :(得分:2)
陷波滤波器背后的主要思想是将FFT图像中的少量频率归零,从而产生噪声。
为了找到它们,您可以查看FFT幅度:
F = abs(ft2);
F = log(F+1);
imshow(F,[])
可以看到频率图像中的峰值位于以下点:
pnts2del ={[88,155],[101,92],[138,71],[125,134]};
如果您将这些点周围的每个点清零,您将获得更清晰的图像:
G = 60;
for ii=1:length(pnts2del)
pnt = pnts2del{ii};
filt(pnt(1),pnt(2)-G:pnt(2)+G) = 0;
filt(pnt(1)-G:pnt(1)+G,pnt(2)) = 0;
filt(pnt(1)-1:pnt(1)+1,pnt(2)-1:pnt(2)+1) = 0;
end
结果(之前和之后,以及更新的FFT):
答案 1 :(得分:1)