www.pudn.com > BubianjuWork.rar > hand12.m


i=imread('dd.bmp'); 
I=rgb2gray(i); 
I=imnoise(I,'salt & pepper',0.0005); 
for i=1:256 
    for j=1:10 
        I(i,j)=I(1,1); 
end 
    end 
B=double(I); 
D=I; 
%figure;imshow(D); 
F=double(D); 
E=D; 
    i=40; 
    for j=5:220 
        E(i,j)=255; 
    end 
    i=190; 
    for j=5:220 
        E(i,j)=255; 
    end 
    j=5; 
    for i=40:190 
        E(i,j)=255; 
    end 
    j=220; 
    for i=40:190 
        E(i,j)=255; 
    end 
    figure;imshow(E); 
S(1,1)=40;S(1,2)=5; 
for i=2:23 
    S(i,1)=40; 
    S(i,2)=10+10*(i-2); 
end 
for i=24:38 
    S(i,1)=50+10*(i-24); 
    S(i,2)=220; 
end 
for i=39:59 
    S(i,1)=190; 
    S(i,2)=220-10*(i-38); 
end 
S(60,1)=190;S(60,2)=5; 
for i=61:75 
    S(i,1)=190-10*(i-60); 
    S(i,2)=5; 
end 
S(76,1)=S(1,1);S(76,2)=S(1,2); 
S(77,1)=S(2,1);S(77,2)=S(2,2); 
for iii=1:200 
   aver=0; 
   for i1=1:74 
       d=sqrt((S(i1+1,1)-S(i1,1))^2+(S(i1+1,2)-S(i1,2))^2); 
       aver=aver+d; 
   end 
   aver=aver+sqrt((S(75,1)-S(1,1))^2+(S(75,2)-S(1,2))^2); 
   aver=aver/75; 
   jj=0.0; 
   kk=0.0; 
   for i2=1:75 
       jj=jj+S(i2,1); 
       kk=kk+S(i2,2); 
   end 
   jj=jj/75; 
   kk=kk/75; 
   for i=5:55 
       cout1=abs(aver-sqrt((S(i,1)-1-S(i-1,1))^2+(S(i,2)-1-S(i-1,2))^2)); 
       curv1=((S(i,1)-1)*2-S(i-1,1)-S(i+1,1))^2+((S(i,2)-1)*2-S(i-1,2)-S(i+1,2))^2; 
       %Çóimg 
       j=S(i,1); 
       k=S(i,2); 
       min3=D(j-1,k-1); 
       max3=D(j-1,k-1); 
       if(D(j-1,k)max3) 
           max3=D(j-1,k); 
       end 
       if(D(j-1,k+1)max3) 
           max3=D(j-1,k+1); 
       end 
       if(D(j,k+1)max3) 
           max3=D(j,k+1); 
       end 
       if(D(j+1,k+1)max3) 
           max3=D(j+1,k+1); 
       end 
       if(D(j+1,k)max3) 
           max3=D(j+1,k); 
       end 
       if(D(j+1,k-1)max3) 
           max3=D(j+1,k-1); 
       end 
       if(D(j+1,k)max3) 
           max3=D(j+1,k); 
       end 
       max3=double(max3); 
       min3=double(min3); 
       dd=max3-min3; 
       if(dd==0) 
           dd=1; 
       end 
       img1=(F(j-1,k-1)-min3)/dd; 
       cons1=sqrt((S(i,1)-1-jj)^2+(S(i,2)-1-kk)^2); 
       max1=cout1; 
       max2=curv1; 
       max4=cons1; 
       cout2=abs(aver-sqrt((S(i,1)-1-S(i-1,1))^2+(S(i,2)-S(i-1,2))^2)); 
       curv2=((S(i,1)-1)*2-S(i-1,1)-S(i+1,1))^2+((S(i,2))*2-S(i-1,2)-S(i+1,2))^2; 
       img2=(F(j-1,k)-min3)/dd; 
       cons2=sqrt((S(i,1)-1-jj)^2+(S(i,2)-kk)^2); 
       if(cout2>max1) 
           max1=cout2; 
       end 
       if(curv2>max2) 
           max2=curv2; 
       end 
       if(cons2>max4) 
           max4=cons2; 
       end 
       cout3=abs(aver-sqrt((S(i,1)-1-S(i-1,1))^2+(S(i,2)+1-S(i-1,2))^2)); 
       curv3=((S(i,1)-1)*2-S(i-1,1)-S(i+1,1))^2+((S(i,2)+1)*2-S(i-1,2)-S(i+1,2))^2; 
       img3=(F(j-1,k+1)-min3)/dd; 
       cons3=sqrt((S(i,1)-1-jj)^2+(S(i,2)+1-kk)^2); 
       if(cout3>max1) 
           max1=cout3; 
       end 
       if(curv3>max2) 
           max2=curv3; 
       end 
       if(cons3>max4) 
           max4=cons3; 
       end 
       cout4=abs(aver-sqrt((S(i,1)-S(i-1,1))^2+(S(i,2)+1-S(i-1,2))^2)); 
       curv4=((S(i,1))*2-S(i-1,1)-S(i+1,1))^2+((S(i,2)+1)*2-S(i-1,2)-S(i+1,2))^2; 
       img4=(F(j,k+1)-min3)/dd; 
       cons4=sqrt((S(i,1)-jj)^2+(S(i,2)+1-kk)^2); 
       if(cout4>max1) 
           max1=cout4; 
       end 
       if(curv4>max2) 
           max2=curv4; 
       end 
       if(cons4>max4) 
           max4=cons4; 
       end 
       cout5=abs(aver-sqrt((S(i,1)+1-S(i-1,1))^2+(S(i,2)+1-S(i-1,2))^2)); 
       curv5=((S(i,1)+1)*2-S(i-1,1)-S(i+1,1))^2+((S(i,2)+1)*2-S(i-1,2)-S(i+1,2))^2; 
       img5=(F(j+1,k+1)-min3)/dd; 
       cons5=sqrt((S(i,1)+1-jj)^2+(S(i,2)+1-kk)^2); 
       if(cout5>max1) 
           max1=cout5; 
       end 
       if(curv5>max2) 
           max2=curv5; 
       end 
       if(cons5>max4) 
           max4=cons5; 
       end 
       cout6=abs(aver-sqrt((S(i,1)+1-S(i-1,1))^2+(S(i,2)-S(i-1,2))^2)); 
       curv6=((S(i,1)+1)*2-S(i-1,1)-S(i+1,1))^2+((S(i,2))*2-S(i-1,2)-S(i+1,2))^2; 
       img6=(F(j+1,k)-min3)/dd; 
       cons6=sqrt((S(i,1)+1-jj)^2+(S(i,2)-kk)^2); 
       if(cout6>max1) 
           max1=cout6; 
       end 
       if(curv6>max2) 
           max2=curv6; 
       end 
       if(cons6>max4) 
           max4=cons6; 
       end 
       cout7=abs(aver-sqrt((S(i,1)+1-S(i-1,1))^2+(S(i,2)-1-S(i-1,2))^2)); 
       curv7=((S(i,1)+1)*2-S(i-1,1)-S(i+1,1))^2+((S(i,2)-1)*2-S(i-1,2)-S(i+1,2))^2; 
       img7=(F(j+1,k-1)-min3)/dd; 
       cons7=sqrt((S(i,1)+1-jj)^2+(S(i,2)-1-kk)^2); 
       if(cout7>max1) 
           max1=cout7; 
       end 
       if(curv7>max2) 
           max2=curv7; 
       end 
       if(cons7>max4) 
           max4=cons7; 
       end 
       cout8=abs(aver-sqrt((S(i,1)-S(i-1,1))^2+(S(i,2)-1-S(i-1,2))^2)); 
       curv8=((S(i,1))*2-S(i-1,1)-S(i+1,1))^2+((S(i,2)-1)*2-S(i-1,2)-S(i+1,2))^2; 
       img8=(F(j,k-1)-min3)/dd; 
       cons8=sqrt((S(i,1)-jj)^2+(S(i,2)-1-kk)^2); 
       if(cout8>max1) 
           max1=cout8; 
       end 
       if(curv8>max2) 
           max2=curv8; 
       end 
       if(cons8>max4) 
           max4=cons8; 
       end 
       l1=0.15; 
       l2=0.05; 
       l3=60.0; 
       l4=0.2; 
       E1=cout1*l1/max1+curv1*l2/max2+img1*l3/max3+cons1*l4/max4; 
       Emin=E1; 
       E2=cout2*l1/max1+curv2*l2/max2+img2*l3/max3+cons2*l4/max4; 
       if(E2