指纹识别算法的matlab实现(4)

2019-03-04 13:16

图 2-6 一个像素处的8个指纹脊线方向

我们先对分割后的图像进行了平均滤波,然后对图像的每一个像素,为确定在该像素处的脊线方向,在以该像素为中心的9*9窗口内,分别计算8个方向上的经过处理后的灰度值,即将图2-6中数字1到8的位置的像素灰度值去除其中最大summax和最小值summin,若满足最大的summax和最小的summin与 4*I(x,y))之和大于 (3*summ/8),则该像素点的脊线方向为summin,否则为summax.确定完脊线方向后再由该方向场对图像进行二值化。

二值化的matlab程序见附录A。结果如下:

图 2-7 指纹二值化

16

2.3 指纹图像的滤波

一个优秀的指纹识别系统不仅需要高的识别准确度,还需要高的识别速度,而影响识别速度的最主要因素就是指纹图像的滤波,而滤波的好坏直接因素是增强滤波的算法,当然跟所使用的软件和硬件也有很大的关系。

图像在当前的采集设备条件下,不可避免的会受到环境和自身因素的影响,指纹图像质量低的主要原因有:(1)存在擦伤或创伤的伤痕所引起的脊线中断或变的不清晰;(2)指纹干燥所引起指纹图像印痕模糊,导致脊线和谷线的对比度比较差;(3)污渍导致指纹图像的脊线或谷线粘连和断裂。

这些图像噪声对后续的指纹提取带来很大的困难,因此必须要在指纹二值化和细化之前进行图像增强滤波,图像增强的目的:减弱原始图像的噪声,增强脊线和谷线的对比度,即修补指纹图像脊线中断裂的部分,去除指纹图像中脊线或谷线的叉连部分,从这些原指纹图像中尽可能多的获取清晰的指纹纹路结构,以保证指纹提取的可靠性。指纹图像的增强滤波有很多的算法,本文就一种图像滤波器算法进行阐述。

上下文滤波器:

该算法也是基于脊线纹路和纹理的方向图的,但是这种算法比较简单且效果良好,使用时用的滤波器要根据具体的某一块指纹脊线的方向从一系列的滤波器中选择一个合理的滤波器来对要进行滤波的指纹进行滤波,其它块的指纹图像滤波则可以通过已用过的滤波器旋转得到。一个基本增强滤波器主要由可将脊线中的断点连接起来的平均滤波器和可将脊线分叉点去除的分离滤波器组成。

17

指纹图像中脊线的一个周期(即一脊一谷)可以决定增强滤波器的大小,一般地周期T=5,本文中选择5*5的滤波器,平均滤波器在水平方向上的权值可以用下图2-8来表示。

图 2-8 平均滤波器水平方向权值 图 2-9 分离滤波器水平方向权值

(其中A>B>C>=0;P+2Q+2R=0)。

二值化后的指纹图像通过平均滤波器的处理,其每一点灰度值由它临近的二十四个(因为是5*5的滤波器)像素的灰度值决定,因此可以用下式来对f(i,j)(第i行和第j列的灰度值)进行处理[9]:

f?i,j??m??2?C?f?i?2,j?m???B?f?i?1,j?m???A?f?i,j?m?

m??2m??22222 ??B?f?i?1,j?m??m??2m??2?C?f?i?2,j?m? (2-6)

2平均滤波的原理如下:对于脊线中的断点我们采用平均滤波器。断点处脊线的灰度值要比周围的灰度值小,经过平均滤波器的处理,它的灰度值就大约等于周围的灰度值,因此二值化后的指纹中断裂的脊线就会被连起来。

对于脊线中的分叉点我们采用分离滤波器。脊线中叉连点的两端灰度值比中间的要稍微大一些,经过分离滤波器的处理,叉连点处的灰度值就会降下来,脊线中的叉连点就会被去除了。脊线的断裂和叉连点如图2-10所示:

断裂脊线

原脊线18

叉连脊线原脊线

图2-10 断裂与叉连

因此选择增强滤波器的时候必须要具有类似平均滤波器和分离滤波器作用的增强滤波器,分离滤波器的权值可以用下图2-9来表示,并且可以得到一般滤波器的权值如图2-11。

图 2-11 上下文滤波器的权值

参数满足K =A+P,L =B+Q,M =C+R。

上下文滤波器中的平均滤波器起到了去除空洞的作用,分离滤波器起到了去除毛刺的作用。

算法实现的matlab程序见附录A。 结果如图2-12和图2-13:

图 2-12 去除毛刺

19

图 2-13 去除空洞

2.4 图像细化

分割和滤波后的指纹图像再进行二值化处理后,脊线仍然有一定的宽度,指纹识别的匹配是只利用图像的点或线的特征,这些点或者特征只与脊线的走向或者纹理有关系,有一定宽度的二值化图像显得有些多余,所以需要对二值化图像进行细化处理,指纹二值化图像经过细化处理即可得到一个单一像素宽度的脊线,经过上述的细化处理,在后续的指纹特征提取和特征匹配的算法中大大的减少了计算的冗余量和出错率,使得指纹识别的速度和准确度有了很大的提高。

细化目的是在不破坏指纹图像连通性的情况下去除掉多余的信息(即多余的像素点),将二值化的指纹图像的脊线采用逐层剥离的方法,将图像中的指纹脊线细化成单象素宽(实际为保存原图的骨架)。一个好的指纹细化算法必须在不破坏指纹纹理性和连通性的情况下细化成单像素脊线。总体来说,细化算法应满足(1)尽量保持原图像的基本机构特性(如脊线的形态);(2)尽量以脊线的中轴线或者指纹的中心为重心;(3)从指纹脊线的两面

20


指纹识别算法的matlab实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:沙湖污水处理厂实习报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: