www.pudn.com > codebar.rar > findchar.m


%ÿһ¸ö×Ö·ûÓɺڰ׺ڰ×4¸ö¿é×é³É 
%pos=[head left middle right head]; 
function [number,valid] = findchar(a1,b1,a2,b2,pos) 
 
%A×Ö·û¼¯------°×ºÚ°×ºÚ 
amatrix=[ 
    6 4 2 2;%0 
    4 4 4 2;%1 
    4 2 4 4;%2 
    2 8 2 2;%3 
    2 2 6 4;%4 
    2 4 6 2;%5 
    2 2 2 8;%6 
    2 6 2 4;%7 
    2 4 2 6;%8 
    6 2 2 4;%9    ];%B×Ö·û¼¯-----°×ºÚ°×ºÚ,bmatrix=[ 
    2 2 4 6;%0 
    2 4 4 4;%1 
    4 4 2 4;%2 
    2 2 8 2;%3 
    4 6 2 2;%4 
    2 6 4 2;%5 
    8 2 2 2;%6 
    4 2 6 2;%7 
    6 2 4 2;%8 
    4 2 2 6;%9 
    ];%10*4 
%C×Ö·û¼¯------ºÚ°×ºÚ°× 
cmatrix=[ 
    6 4 2 2; 
    4 4 4 2; 
    4 2 4 2;%2 
    2 8 2 2;%3 
    2 2 6 4;%4 
    2 4 6 2;%5 
    2 2 2 8;%6 
    2 6 2 4;%7 
    2 4 2 6;%8 
    6 2 2 4; 
    ];%10*4 
%Æðʼ×Ö·ûºÍÖÕÖ¹·û£¬010 
headmatrix = [2,2,2]; 
%Öмä·Ö¸ô·û----10101 
midmatrix=[2,2,2,2,2]; 
 
%%---------------------Çó·½²î-----------------%%% 
dstd=zeros(1,20); 
%rstd=zeros(1,20); 
switch(pos) 
    case 'head' 
        hstd=(a1-headmatrix(i,1))^2+(b1-headmatrix(i,2))^2+(a2-headmatrix(i,3))^2; 
        if(hstd < 3) 
            valid =true; 
        else 
            valid =false; 
        end 
    case 'left' 
         valid = true; 
         minstd = (a1-amatrix(1,1))^2+(b1-amatrix(1,2))^2+(a2-amatrix(1,3))^2+(b2-amatrix(1,4))^2; 
         dstd(1,1)=minstd; 
         minindx = 1; 
         for k=2:20 
        	dstd(1,k)=(a1-amatrix(k,1))^2+(b1-amatrix(k,2))^2+(a2-amatrix(k,3))^2+(b2-amatrix(k,4))^2; 
            if(dstd(1,k)9) 
    number = number-10; 
end