发明名称 一种基于边界点搜索和SUSAN边缘检测的虹膜定位方法
摘要 本发明涉及一种基于边界点搜索和SUSAN边缘检测的虹膜定位方法,其首先采用投影法,对经过光斑填充得二值化虹膜图像进行水平和垂直灰度投影,得到瞳孔的粗略中心;通过对水平灰度曲线的扫描,找到灰度值大于某一阀值的一点作为虹膜的内边界点;对上述的一系列内边界点进行圆拟合,从而得到虹膜内缘的位置信息;再通过SUSAN边缘检测的方法,使虹膜外边缘特征不明显的状况得到了很好的解决,通过方向检测得到了虹膜的外边缘半径,准确地得到虹膜外缘的位置信息;利用SUSAN边缘检测的方法对虹膜区域外边缘进行定位是本发明的一个特色,与一般的两步虹膜定位方法相比,本发明的定位准确率要高5个百分点,并且速度提高40%。
申请公布号 CN101246544A 申请公布日期 2008.08.20
申请号 CN200810026104.4 申请日期 2008.01.24
申请人 电子科技大学中山学院 发明人 解梅;鲁剑
分类号 G06K9/00(2006.01);G06K9/38(2006.01) 主分类号 G06K9/00(2006.01)
代理机构 中山市科创专利代理有限公司 代理人 尹文涛
主权项 1、一种基于边界点搜索和SUSAN边缘检测的虹膜定位方法,其特征在于其包括以下步骤:步骤1、通过摄像装置,对人眼中的虹膜进行图像采集,得到含有虹膜图像的原始灰度图像;步骤2、选取一个固定的阈值V<sub>b</sub>,将原始虹膜图像进行二值化,原始灰度图像中灰度值大于阈值V<sub>b</sub>的象素点的灰度值赋为1,小于阈值V<sub>b</sub>的象素点的灰度值赋为0;步骤3、对步骤2中得到的二值图像,进行数学形态学中的闭合运算来消除二值图像中的小空洞,具体来说,闭合运算为:AB=(AB)ΘB,即先对原始图像A用结构元素B进行膨胀运算,然后再进行腐蚀运算,结构元素B为一个7×7的矩阵,中间近似圆形区域内的元素的值为1,其余元素的值为0,为闭合运算符,为膨胀运算符,Θ为腐蚀运算符;步骤4、计算步骤3中得到图像的水平和垂直灰度投影,水平投影的计算公式为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>S</mi><mi>h</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>垂直灰度投影的计算公式为:<maths num="0002"><![CDATA[<math><mrow><msub><mi>S</mi><mi>v</mi></msub><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>其中S<sub>h</sub>(x)表示横坐标为x的灰度投影值,S<sub>v</sub>(y)表示纵坐标为y的灰度投影值,M,N为图像的宽度和高度,I(x,y)为位置(x,y)的象素点的灰度值;步骤5、搜索步骤4中的水平灰度投影S<sub>h</sub>(x)取最小值时的横坐标x<sub>o</sub>和垂直灰度投影S<sub>h</sub>(y)取最小值是的纵坐标y<sub>o</sub>,将(x<sub>o</sub>,y<sub>o</sub>)视为瞳孔的粗略中心;步骤6、在纵坐标为y<sub>o</sub>这一行上,以(x<sub>o</sub>,y<sub>o</sub>)为中心,沿水平方向向左搜索象素灰度值大于T的点,当搜索到象素灰度值大于T时立即停止搜索,记下此时的坐标(x<sub>l</sub>,y<sub>o</sub>)作为瞳孔边界点的坐标,再按同样的方式进行沿水平方向向右的搜索,得到另一边界点坐标(x<sub>r</sub>,y<sub>o</sub>);步骤7、取坐标点(x<sub>o</sub>,y<sub>o</sub>)附近的若干行,在取出的每一行上进行瞳孔边界点的搜索,方法与步骤6中在y<sub>o</sub>一行进行的搜索方法相同,最终可以得到一系列瞳孔边界点的坐标;步骤8、由于瞳孔的内边缘非常类似于一个圆,因此,对步骤7中得到的一系列瞳孔边界点进行圆拟合,具体来说:圆方程为x<sup>2</sup>+y<sup>2</sup>+cx+dy+e=0,c,d和e是关于圆曲线的半径和圆心坐标点的参数,(x,y)为圆曲线上的点的坐标值,那么相对于这些坐标点的最佳圆曲线就是使误差方差和最小;误差方差和的公式为:<maths num="0003"><![CDATA[<math><mrow><msup><mi>&epsiv;</mi><mn>2</mn></msup><mo>=</mo><munder><mi>&Sigma;</mi><mi>i</mi></munder><msup><mrow><mo>(</mo><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>i</mi><mn>2</mn></msubsup><mo>+</mo><mi>c</mi><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><mi>d</mi><msub><mi>y</mi><mi>i</mi></msub><mo>+</mo><mi>e</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>,</mo></mrow></math>]]></maths>其中,ε<sup>2</sup>是指误差方差和,(x<sub>i</sub>,y<sub>i</sub>)是已知点的坐标,最后得到瞳孔的精确圆心(x<sub>p</sub>,y<sub>p</sub>)和半径r<sub>p</sub>;步骤9、虹膜圆心和瞳孔圆心位置相近,可把瞳孔圆心作为虹膜圆心;限制SUSAN检测的范围,具体范围公式为:100<x<N-5,y<sub>p</sub>+r<sub>p</sub><y<y<sub>p</sub>+3*r<sub>p</sub>。其中y<sub>p</sub>表示坐标点(x<sub>p</sub>,y<sub>p</sub>)的垂直坐标值,r<sub>p</sub>表示瞳孔的半径,该检测区域为一矩形区域;步骤10、用半径为三个像素点的共37个像素的模板遍历整个检测区域;模板形状如示例模板<maths num="0004"><![CDATA[<math><mrow><mfenced open='' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>数字1表示位于模板内的像素点,数字0表示不属于模板的像素点,模板中心的像素点就是所要检测的像素点;统计出每个像素点的USAN值;步骤11、把经过SUSAN检测的每个像素点的USAN值与USAN阈值作比较,如果该像素值大于USAN阈值,则把该像素点的灰度值设为255,否则保持像素点原来的灰度值不变;步骤12、选取合适的二值化阈值T<sub>u</sub>,二值化图像检测区域;整个检测区域中,灰度值大于T<sub>u</sub>的像素点被赋值为1,灰度值小于T的像素点被赋值为0;步骤13、运用方向检测,沿瞳孔圆心从瞳孔外边缘开始进行四个方向的检测,有检测公式<img file="S2008100261044C00031.GIF" wi="339" he="132" />公式1表示在检测方向-30°,-150°时水平方向和垂直方向的像素点检测时变化快慢的比例关系,公式2表示在检测方向-45°,-135°时水平方向和垂直方向的像素点检测时变化快慢的比例关系,方向检测中如遇像素点灰度值为1,则停止检测取该像素点作为虹膜外缘边界点,检测完毕后比较四个方向的虹膜外缘边界点,取四个外缘边界点据圆心距离的平均值为虹膜外边缘半径r<sub>r</sub>;步骤14、由于虹膜的外边缘也非常类似于一个圆,因此,通过步骤13中得到的虹膜外边缘边界点以及得出的虹膜外边缘半径r<sub>r</sub>,再加上步骤8中得到的圆心(x<sub>p</sub>,y<sub>p</sub>),通过画外圆,即可以得到虹膜的外边缘。
地址 528402广东省中山市石岐区学院路1号