在用matlab做图片的分解与重构,代码运行结果出不来,求大神指教(下附代码和结果)

分解的代码:

X=imread('photo.bmp');
nbcol=size(X,1);
[cA1,cH1,cV1,cD1]=dwt2(X,'db1');
cod_X=wcodemat(X,nbcol);
cod_cA1=wcodemat(cA1,nbcol);
cod_cH1=wcodemat(cH1,nbcol);
cod_cV1=wcodemat(cV1,nbcol);
cod_cD1=wcodemat(cD1,nbcol);
dec2d=[cod_cA1,cod_cH1;cod_cV1,cod_cD1];
subplot(1,2,1); imshow(X,[]);
subplot(1,2,2); imshow(dec2d,[]);


结果:
图片说明

重构代码:
X=imread('photo.bmp');
sX=size(X);
[cA1,cH1,cV1,cD1]=dwt2(X,'db4');
A0=idwt2(cA1,cH1,cV1,cD1,'db4',sX);
subplot(1,2,1); imshow(X,[]);
title('Original Image');
subplot(1,2,2); imshow(A0,[]);
title('Image using idwt2');


结果:
图片说明

求大神纠正,谢谢

http://blog.csdn.net/chenyusiyuan/article/details/1881940

楼主其实已经完成了小波重构,没显示出来只是因为数据格式不对。
A0=idwt2(cA1,cH1,cV1,cD1,'db4',sX);这步的结果里,A0是double型矩阵,应该转为uint8型就能正确显示了。
改成:
X=imread('photo.bmp');
sX=size(X);
[cA1,cH1,cV1,cD1]=dwt2(X,'db4');
A0=idwt2(cA1,cH1,cV1,cD1,'db4',sX);
A1=uint8(A0);
subplot(1,2,1); imshow(X,[]);
title('Original Image');
subplot(1,2,2); imshow(A1,[]);
title('Image using idwt2');