clc;
clear;
x= imread('E:\matlab_ME\picture_preprocess\delicious.jpg');
subplot(2,2,1);
imshow(x);
% X=rgb2gray(x);
% subplot(2,2,2);
% imshow(X);
X_noise=imnoise(x,'speckle',0.01);
figure(1);
imshow(X_noise);
saveas(1,'X_noise.png');
close(figure(1));
[c,s] = wavedec2(X_noise,6,'db2');
wrcoef_4 = wrcoef2('a',c,s,'db2',4);
figure(2);
imshow(wrcoef_4);
saveas(2,'wrcoef2_4.png');
close(figure(2));
wrcoef_6 = wrcoef2('a',c,s,'db2',6);
figure(3);
imshow(wrcoef_6);
saveas(3,'wrcoef2_6.png');
close(figure(3));
[thr,sorh,keepapp] = ddencmp('den','wv',X_noise);
[Xdenoise,cxc,lxc,perf0,perfl2] = wdencmp('gbl',c,s,'db2',6,thr,sorh,keepapp);
figure(4);
imshow(Xdenoise./max(max(Xdenoise))); %将图像矩阵转化到0-1之间
saveas(4,'Xdenoise.png');
close(figure(4));
读取图片:imread
x= imread('E:\matlab_ME\picture_preprocess\delicious.jpg');
显示图片:imshow(x);
subplot(2,2,1);
imshow(x);
加入噪声:imnoise(x,‘speckle’,0.01);
X_noise=imnoise(x,'speckle',0.01);
在使用小波去噪处理:ddencmp和wdencmp变时,所处理的图片数据会从uint8变成double 此时如果单纯的使用imshow是显示不出来图片的,需要换成
imshow(Xdenoise./max(max(Xdenoise))); %将图像矩阵转化到0-1之间
Xdenoise 是需要显示的图片
将所显示的图片保存下来
figure(i);
imshow(Xdenoise./max(max(Xdenoise))); %将图像矩阵转化到0-1之间 (显这里只有显示出来下面的saveras才能保存图片,不然保存下来的是一片白)
saveas(4,'Xdenoise.png');
close(figure(i));%关闭figure的框