matlab去除噪声
发布网友
发布时间:2022-04-22 23:57
我来回答
共2个回答
热心网友
时间:2023-07-05 16:56
1.读图象
2.做fft
3.显示fft
4.肉眼观察频谱中的噪声.(正弦干扰是在频谱中是几个点)
5.频谱中有噪声的区域设置为0.(或者低通)
6.反fft变换
7.显示
1.读图象
im=imread('文件名');
2.做fft
im_fft=(fftshift(fft2(im)));%fftshift是把低频成分放到中间,习惯上要这样做。
3.显示fft
im_magfft=abs(im_fft);
temp1=log(im_magfft+1);%否则幅度太大,不能显示整个动态范围
Xmin = min(min(temp1));
Xmax = max(max(temp1));
scaf = 255/(Xmax-Xmin);
im_ftd = floor(scaf*(temp1 - Xmin));
figure;
imshow(im_ftd);
4.肉眼观察频谱中的噪声.(正弦干扰是在频谱中是几个点)
5.频谱中有噪声的区域设置为0.(或者低通)
%下面举例低通
r = 70; %低通的中心半径,自己观察
for i=1:m
for j=1:n
if (((i-m/2)^2+(j-n/2)^2) < r^2 )
mask(i,j) = 1;
else
mask(i,j) = 0;
end
end
end
im2_fft=im_fft.*mask;
6.反fft变换
im2=ifft(ishiftfft(im2_fft));
7.显示
imshow(im2);
热心网友
时间:2023-07-05 16:57
lz名字真。。。