www.pudn.com > pupil.rar > Pupil.m


I=imread('E:\CASIA\001\1\001_1_1.bmp'); 
Imin=min(I); 
Imin=min(Imin); 
Imean=mean(I); 
Imean=mean(Imean); 
Imin=double(Imin); 
T=(Imin+Imean/3)/255; 
BW=im2bw(I,T); 
se=strel('line',5,5); 
BW=imdilate(BW,se); 
imshow(BW); 
hold on 
V=zeros(1,320); 
for i=1:320 
    V(i)=sum(BW(:,i)); 
end 
m=min(V); 
H=zeros(1,280); 
for i=1:280 
   H(i)=sum(BW(i,:)); 
end 
n=min(H); 
R=(280-m+320-n)/4; 
j=1; 
for i=1:320 
   if V(i)==m 
        Array(j)=i; 
        j=j+1; 
   end 
end 
a=mean(Array); 
j=1; 
for i=1:280 
    if H(i)==n 
         Array2(j)=i; 
         j=j+1; 
    end 
end 
b=mean(Array2); 
pai=3.1415926; 
step=pai/128; 
theta=0:step:2*pai; 
len=length(theta); 
for i=1:len 
    xx(i)=a+R*cos(theta(i)); 
    yy(i)=b+R*sin(theta(i)); 
end 
RR=complex(xx,yy); 
plot(RR,'r-','linewidth',2); 
hold off;