wavelet of picture(MATLAB R2018)

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的框
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值