function [appcoef,horicoef,vertcoef,diacoef]=wavedwt(x,N,wname)
error(nargchk(3,3,nargin));
[ld,hd]=wfilters(wname,'d');
x=rgb2gray(x);
x=double(x);
appcoe=x;
dprow=[];
hprow=[];
for k=1:N
[height,width]=size(appcoe);
for i=1:height
[lc,hc]=dwt(appcoe(i,:),ld,hd,'row');
dprow=[dprow;lc];
hprow=[hprow;hc];
end;
appcoe=[dprow,hprow];
appcoef=[];
vertcoef=[];
horicoef=[];
diacoef=[];
[row,col]=size(appcoe);
for j=1:col
temp=appcoe(:,j);
[lc,hc]=dwt(temp,ld.',hd.','colnum');
appcoef=[appcoef,lc];
vertcoef=[vertcoef,hc];
end;
last=[appcoef;vertcoef];
appcoe=appcoef;
end;
temp1=mat2gray(last)
imshow(temp1);
function [lc,hc]=dwt(h_or_wcoef,lpd,hpd,rwname)
lc=conv(h_or_wcoef,lpd);
lc=dowsample(lc,rwname);
hc=conv(h_or_wcoef,hpd);
hc=dowsample(hc,rwname);
function dos=dowsample(coe,rwname)
lengt=length(coe);
n=floor(lengt/2);
if strcmp(rwname,'row')
dos=zeros(1,n);
else dos=zeros(n,1);
end;
k=1:n;
dos(k)=coe(2*k);