虹膜检测

****瞳孔填充和定位****

此段代码包含三个文件eye.cpp,OsiCircle.cpp,OsiCircle.h。其中OsiCircle.h和OsiCircle.cpp是我在github上面下载的,主要功能是创建一个圆形的类,方便我们找到圆心和半径之后存起来后续代码调用(其实不需要这两个文件也行,自己可以创建一个画圆的结构体),链接是*https://codeload.github.com/hbhdytf/Irisextraction/zip/master*。

再来谈谈eye.cpp,里面大致分为三个方向,第一个函数是reconstructMarkerByMask此函数是对输入图像做一个形态学操作后输出像素值最小的位置的图像。第二个函数是fillWhiteHoles,这个函数是watersun给出的函数,实际作用是是对里面的瞳孔的像素填充,让瞳孔更“黑”,并且嵌入reconstructNakerByMask这个函数可以腐蚀掉一些睫毛之类的东西可以更加突出瞳孔和外轮廓。最后便是最麻烦的函数,detectPupil()这个函数的主要功能是找到瞳孔的圆心和半径,然后存入OsiCircle的对象中完成画圆操作,此函数首先进行对比(对传入的瞳孔的最大直径和最小直径对比图片的长宽乘上ratio),从而更新瞳孔长宽比例从而调整图像长宽和瞳孔的最大与最小直径,然后调用fillWhiteHoles进行填充和腐蚀,达到突出瞳孔的目的,此项做完,我们便可以对图像进行边缘检测(sobel),求出图像的x,y方向的梯度从而得到边缘,后面create the filters fh and fy操作我的理解是找到若干个圆心(理解可能错误),然后做的几次卷积我并不太明白啥意思(挠脑袋),最后便通过找到全局最大值找到了圆心和半径。 以上便是我对算法的全部理解,因为我也是第一次做虹膜检测所以可能对算法理解会有不少错误,请指正(拜托)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值