参考程序
function [allTmp,liulei]=test1(IM)
%IM是输入的原图像
tmp=imread('wewe.jpg');
tmp=tmp(:,:,1);
IM=double(tmp);
IM=IM(1:118,1:174);
figure(1);
imshow(uint8(IM));
[sizeX,sizeY]=size(IM);
%显示方向可调小波
jiao=-3.1415926/3;
pi=3.1415926;
for f=1:6
[x1,y1] = meshgrid(-5:0.25:5,-5:0.25:5);
[m,n]=size(x1);
for i=1:m
for j=1:n
x=x1(i,j);y=y1(i,j);
z(i,j)=-(x/(2*pi)*exp(-(x*x+y*y)/2))*cos(pi/6*(f-1))-(
y/(2*pi)*exp(-(x*x+y*y)/2))*sin(pi/6*(f-1));
end
end
figure(2);
subplot(2,3,f);
mesh(x1,y1,z);
colormap([0 0 0]);
end
l=0;
%x方向变换
for i=1:sizeX
for j=1:sizeY
tmp1=0;
for m=-2:2
for n=-2:2
if (i-m)>0 & (i-m)<=sizeX
&(j-n)>0 &(j-n)<=sizeY
tmp1=tmp1+IM(i-m,j-n)*m*(-1/(2*pi)*exp(-(m*m+n
*n)/2));
end
end
end
IMtmp1(i,j)=tmp1;
end
end
%y方向变换
for i=1:sizeX
for j=1:sizeY
tmp1=0;
for m=-2:2
for n=-2:2
if (i-m)>0 & (i-m)<=sizeX
&(j-n)>0 &(j-n)<=sizeY
tmp1=tmp1+IM(i-m,j-n)*n*(-1/(2*pi)*exp(-(m*m+n*
n)/2));
end
end
end
IMtmp2(i,j)=tmp1;
end
end
allTmp=0;
%求6个方向的平均
for pp=2:7
jiao=pi/6*(pp-2);
IMtmp11=-IMtmp1*cos(jiao);
IMtmp22=-IMtmp2*sin(jiao);
IMtmp=IMtmp11+IMtmp22;
IMtmpAbs=abs(IMtmp);
maxv=max(max(IMtmpAbs));
minv=min(min(IMtmpAbs));
minv1=minv*ones(sizeX,sizeY);
IMtmpNom=(IMtmpAbs-minv1)*255/(maxv-minv);