5 图像信息提取和去噪matlab案例

%% 学习目标: 图像处理经典案例 去除噪声
%%
close all;
clear all;
I=imread(‘cameraman.tif’);
I=im2double(I);
%% 生成正弦噪声
u=32;
v=-32;
d=0.3;
u1=2piu/256;
v1=2piv/256;
for j=1:256
for k=1:256
A(j,k)=dsin(u1j+v1*k);
end
end
%% 叠加生成正弦噪声
J=I+A;

F1=fft2(I);
F1am=abs(F1);
F1ph=angle(F1);
F11=fftshift(F1);
F11am=abs(F11);
F2=fft2(J);
F2am=abs(F2);
F2ph=angle(F2);
F22=fftshift(F2);
F22am=abs(F22);
subplot(2,3,1),imshow(I);title(‘原图像’);
subplot(2,3,2),imshow(J);title(‘叠加正弦噪声后的图像’);
subplot(2,3,4),imshow(0.25log10(1+F11am));
subplot(2,3,5),imshow(0.25
log10(1+F22am));

%% 交互式复原图像
F2am0=F2am(1,1);
F2am(1,1)=0;
thresh=max(F2am(????);
for j=1:1:256
for k=1:1:256
if F2am(j,k)>thresh/2
F2am(j,k)=0;
end
end
end
F2am(1,1)=F2am0;
R=F2am.exp(iF2ph);
R2=fftshift®;
R2am=abs(R2);
subplot(2,3,3),imshow(abs(ifft2®));title(‘复原后的图像’)
subplot(2,3,6),imshow(0.25log10(1+R2am));
F3am=abs(fftshift(fft2(J)));
figure;
imshow(0.25
log10(1+F3am));
5 图像信息提取和去噪matlab案例
clear ;
close all;
gr= imread(‘cameraman.tif’);

subplot(1,3,1);
imshow(gr);
subplot(1,3,2);
D = dct2(gr);
F = log(abs(D));
imshow(F,[]);
subplot(1,3,3);
D(abs(D)<200) =0;
%会丢掉很多点 ,但是原图还可识别,适合做信息提取
M = idct2(D)/255;
imshow(M);
5 图像信息提取和去噪matlab案例