基于MATLAB的指纹识别系统
- 课题介绍
由于指纹所具有的普遍性,唯一性和不变性,以及指纹识别技术具有很高的可行性和实用性,使之成为目前最流行、也最可靠的个人身份认证技术之一。
本文主要对指纹图像进行三方面处理:图像预处理、特征提取和特征匹配。图像预处理包括四个步骤:图像分割、滤波增强、二值化、细化,对指纹图像进行预处理后,去除了原图像的冗余部分,方便后续的识别处理;特征提取主要是提取指纹图像细化后的端点和分叉点;特征匹配是利用两个指纹的图像进行特征点比较,来确定两幅图像是否来自于同一手指。
本文给出了指纹图像预处理、特征提取、特征匹配的matlab程序及处理结果。该结果证明,用matlab实现的这些算法的处理结果比较理想,满足识别的可行性和应用性。
- 系统实现原理
指纹识别技术主要包括三大部分:指纹图像采集、指纹预处理、特征提取与匹配。如图1-4所示。
图1-4 指纹识别流程
三、 图像预处理
图3-1 预处理流程
3.1图像的分割
图像分割是从一幅图像中按一定规则将一些物体或区域加以分离,划分出我们感兴趣的部分或区域。经过分割后的图像更容易进行进一步的分类、分析和识别处理。图像分割要在指纹二值化和滤波及细化之前进行,如此可以减少计算的冗余量,提高指纹检测速度。
采集到的指纹内容分为目标区域和背景区域。在指纹图像中,由脊线和谷线组成的较清晰的部分,称之为目标区域;没有用的部分我们称之为背景区域。指纹识别中的分割就是将有用的目标区域分割出来,去掉没用的背景区域,以避免背景区域的各种干扰。指纹图像可分为四类区域:背景区、不可恢复区、可恢复区、清晰区,如下图3.2所示。
图3-2 指纹图像的四种区域
3.2 图像归一化
对指纹图像进行分割处理,消除剩下的背景区域前,首先要进行图像归一化。
对采集好的指纹图像进行归一化处理,是对指纹灰度图的灰度均值和方差做一次调整,使得不论用什么设备采集的指纹图像都可以有预期的方差和均值,从而屏蔽不必要的噪声。指纹归一化不改变指纹质量,只是方便指纹的后续处理并保证程序运行时收敛加快。
图 3-3 归一化图像
3.3 图像分割的方向法
这一方法是基于指纹方向信息的分割方法,它是利用了指纹的脊线和谷线所蕴藏的平行方向信息来分割的,该方法的优点是:适合有污渍的指纹,但缺点是因为依赖脊线的方向,所以脊线不连续时将被识别为背景区域,难以取得满意效果。且计算复杂,处理时间很长,不适宜实际使用。
图 3-4 图像分割
3.4 图像的二值化
图 4-4 指纹二值化
3.5 指纹图像的滤波
一个优秀的指纹识别系统不仅需要高的识别准确度,还需要高的识别速度,而影响识别速度的最主要因素就是指纹图像的滤波,而滤波的好坏直接因素是增强滤波的算法,当然跟所使用的软件和硬件也有很大的关系。
图 4-5 去除毛刺
图 4-6 去除空洞
3.6 图像细化
分割和滤波后的指纹图像再进行二值化处理后,脊线仍然有一定的宽度,指纹识别的匹配是只利用图像的点或线的特征,这些点或者特征只与脊线的走向或者纹理有关系,有一定宽度的二值化图像显得有些多余,所以需要对二值化图像进行细化处理,指纹二值化图像经过细化处理即可得到一个单一像素宽度的脊线,经过上述的细化处理,在后续的指纹特征提取和特征匹配的算法中大大的减少了计算的冗余量和出错率,使得指纹识别的速度和准确度有了很大的提高。
图4-7 细化图
五、 图像特征提取和特征匹配
5.1 特征点提取
(1)提取指纹的端点和交叉点
端点和交叉点均是指纹图像的两个细节特征,同时在指纹识别的的过程中起着重要的作用,因为识别的首要前提就是找到图像的所有端点和交叉点。先通过一p.m函数对八个邻域的坐标位置进行定义,然后定义另一p