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;