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