%程序段:
clear all
A=imread('鬼兰.jpg') %读入原图
B=rgb2gray(A) %转灰度图像newmap=rgb2gray(A)
C=double(B); %转浮点型
nbcol=size(B,1);
[cA1,cH1,cV1,cD1]=dwt2(C,'db1'); %第一次分解dec1d=[cA1,cH1;cV1,cD1];
[cA2,cH2,cV2,cD2]=dwt2(cA1,'db1'); %第二次分解
dec2d=[cA2,cH2;cV2,cD2]
[cA3,cH3,cV3,cD3]=dwt2(cA2,'db1'); %第三次分解
dec3d=[cA3,cH3;cV3,cD3]
%由二维小波分解重构原始图像
t1=size(dec3d) %第一次重构
X1=idwt2 (cA3,cH3,cV3,cD3,'db1',t1)
t2=size(dec2d) %第二次重构
X2=idwt2 (X1,cH2,cV2,cD2,'db1',t2)
t3=size(dec1d) %第三次重构
X3=idwt2 (X2,cH1,cV1,cD1,'db1',t3)
%在同一窗口中显示以上各图像subplot(2,4,1),imshow(A),title('原图')
subplot(2,4,2),imshow(B),title('灰度图像')
subplot(2,4,3),imshow(dec1d,[ ]),title ('第一次分解后图像') subplot(2,4,4),imshow(dec2d,[ ]) ,title('第二次分解后图像') subplot(2,4,5),imshow(dec3d,[ ]),title('第三次分解后图像') subplot(2,4,6),imshow(X1,[ ]),title ('第一次重构')
subplot(2,4,7),imshow(X2,[ ]),title ('第二次重构')
subplot(2,4,8),imshow(X3,[ ]),title ('第三次重构')
%db1分解及重构图像:
t2=size(dec2d) %第二次重构
X2=idwt2 (X1,cH2,cV2,cD2,'db1',t2)
t3=size(dec1d) %第三次重构
X3=idwt2 (X2,cH1,cV1,cD1,'db1',t3)
%在同一窗口中显示以上各图像subplot(2,4,1),imshow(A),title('原图')
subplot(2,4,2),imshow(B),title('灰度图像')
subplot(2,4,3),imshow(dec1d,[ ]),title ('第一次分解后图像') subplot(2,4,4),imshow(dec2d,[ ]) ,title('第二次分解后图像') subplot(2,4,5),imshow(dec3d,[ ]),title('第三次分解后图像') subplot(2,4,6),imshow(X1,[ ]),title ('第一次重构')
subplot(2,4,7),imshow(X2,[ ]),title ('第二次重构')
subplot(2,4,8),imshow(X3,[ ]),title ('第三次重构')
%haar分解及重构图像:。