指纹识别 matlab_指纹识别matlab

一、指纹识别原理

传统的身份识别技术包括基于密码的身份识别技术和基于令牌的身份识别技术。但是这两种方式都存在着一定的安全风险:令牌容易丢失,密码容易忘记,且它们都容易被窃取或冒充。近年来,依赖人体特征的新型身份识别技术正在兴起,凭借其唯一且不变的特点,生物识别技术逐步成为人们研究的热点。而在生物识别技术中,指纹识别技术已经被广泛的研究和应用。

指纹识别主要包括这几个部分:指纹采集——指纹图像预处理——特征点提取——特征点匹配——输出显示

a0bbdabdbb558971f04d3d13ec12123c.png
image

二、指纹图像预处理

因为采集指纹时力度和各种因素所以采集的指纹灰度图会有很大不同,首先对图像进行归一化处理,归一化主要针对两个步骤:大小和灰度值。把采集到的指纹图统一调整到特定大小。灰度值我会根据整幅图的均值方差调整到某一范围内。

归一化处理完毕后会对图像进行分割处理,目的是区分出前景色和背景色。我采用的分割为根据多区域阈值分割。多区域分割的效果取决于区域的大小,而指纹的区域分为一脊一谷最好,所以我选择3x3的区域大小。我会根据对区域多次进行求均值和方差进行分割。采集到的指纹图背景的灰度值大于前景色,背景主要为低频,所以背景的方差小于前景的方差。我分别求得背景和前景的均值和方差然后会得到背景为白色 脊线为黑色。然后保存在矩阵e中,我会根据e中位置等于1的点的八邻域点的和小于四得到背景色,达到背景和前景分离。然后黑白反转让感兴趣的前景色变为白色(保存在Icc中),灰度图(gray)的背景值替换为小区域块的和的均值.但是得到的脊线方向并不能达到准确识别指纹。

下一步会沿脊线方向增强指纹纹路,采用的方法为基于脊线方向场的增强方法。为了估计脊线的方向场,把脊线的方向场划分为八个方向,然后根据八个方向的灰度值的总和来得到脊线的方向。并对图像进行二值化。此时脊线还是为黑色。

因为各种采集原因(油脂水分等)会使指纹粘连断裂,会影响后续的特征提取和识别,接下来会去除指纹中的空洞和毛刺,如果当前位置点值为0(背景)该点的四邻域点的和大于3则为毛刺,空洞的判断方法为该点为白色(背景)的四周为黑色八领域点两的和为0,则为空洞。

我们得到的图像的纹线仍具有一定的宽度,而指纹的识别只与纹线的走向有关。所以我们只需要纹线的宽度为一个像素宽度即可。下面我执行了黑白反转使感兴趣的区域(纹线)变为白色。在执行开操作和闭操作使边界平滑,消除细小的尖刺,断开窄小的连接。执行细化得到细画图。

三、特征点提取

指纹特征提取的主要目的是计算指纹核心点(Core)和细节点(Minutia)的特征信息。在提取指纹核心点时,采用的是Poincare Index算法,该算法的思路是在指纹图像某像素点区域内,按围绕该点的闭合曲线逆时针方向旋转一周,计算方向角度旋转变化量的和,最后以计算结果来寻找核心点。计算过程中如果某像素点的Poincare Index值为π则判定为核心点,然后便提取该点的坐标与方向场信息,记为P(Cx, Cy, θc)。

对于指纹的细节点特征,在本设计中只要求提取指纹脊线端点(Ending)和脊线分叉(Bifurcation)两种细节点。

在提取指纹细节点时,首先为细化图像中的每个像素点P建立一个8邻域像素区

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值