rueihua2.m

来自「在matlab中最简单的功能实现去噪、平滑和锐化」· M 代码 · 共 40 行

M
40
字号
a=imread('F:\学习\数字图象\作业\第一次上机\小丑.jpg');             %读取
b=double(a);                                      %数据类型转换便于傅立叶变换   
F=fftshift(fft2(b));                              %傅立叶变换
A=sqrt(real(F).^2+imag(F).^2);                    %求频谱    
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;  %频谱归一化
subplot(1,2,1);imshow(a);subplot(1,2,2);imshow(A);%显示原图及其频谱
%频谱处理(去噪)------------------------------------------------
for i=83:89
for j=74:80
F(j,i)  =0;
end
end
 for i=100:113
for j=35:45
F(j,i)  =0;
end
 end
 for i=17:30
for j=84:97
F(j,i)  =0;
end
 end
 for i=40:47
for j=49:56
F(j,i)  =0;
end
 end
%--------------------------------------------------------------
F=F*(1/(1+(80/sqrt(i^2+j^2)^100)));
A=sqrt(real(F).^2+imag(F).^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255; %频谱处理
figure;                                          %打开新窗口
imshow(A);                                       %显示处理后频谱

f=ifft2(ifftshift(F));                           %反变换
c=uint8(f);                                      %数据类型还原
figure;                                          %打开新窗口
imshow(c);                                       %去噪之后的图

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?