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

2019-03-04 13:16

1 Vi?WH??(I(i,j)?M)ii?0j?0H?1W?12 (2-2)

(2)指定期望的图像方差和平均值后,算出归一化后的图像G(i,j):

?V0(I(i,j)?Mi)2 I(i,j)?Mi?M0?V?i G(i,j)?? (2-3)

2V0(I(i,j)?Mi)?M? I(i,j)?Mi?0Vi?其中M0,V0为期望的平均值和方差(一般M0=150,V0=2000)。 Matlab程序见附录A。

图 2-3 归一化图像

2.1.2 图像分割的方向法

这一方法是基于指纹方向信息的分割方法,它是利用了指纹的脊线和谷线所蕴藏的平行方向信息来分割的,该方法的优点是:适合有污渍的指纹,但缺点是因为依赖脊线的方向,所以脊线不连续时将被识别为背景区域,难以取得满意效果。且计算复杂,处理时间很长,不适宜实际使用。

11

2.1.3 图像分割的方差法

方差法[5]:传统的分割算法都是基于图像局部灰度方差的分割方法(即方差法),一般地,目标区域中指纹脊和谷的灰度差是较大的,因而其局部灰度方差也较大;对于图像背景区域,方差值则是较小的。基于这一基本特性,可利用图像的局部方差对指纹图像进行分割。该方法的优点:算法简单,计算速度快,如果采集到的指纹质量好,则分割效果不错;缺点:对质量较差的指纹,该方法分割效果不是很理想,如当指纹背景区域有污渍时, 这些区域的方差也比较大,用方差法分割时就不能被有效地分割出去。

改进后的方差法:为了解决上述问题,可以在方差法分割的基础上进行开运算和闭运算操作,该算法继承了方差法的优点且又克服了易受噪声影响的缺陷。

把指纹的图像分成3*3块,将归一化处理后的图像进行分割的具体算法步骤如下:

(1)利用式(2-1)和式(2-2)对指纹的小块求灰度平均值和方差,设定一阈值T,因为是3*3模块,所以是在8邻域中,即T=4,若Vi>4,则该小块作为目标留下,并把该块标示为1,存放于矩阵A中;若Vi<4,则该块作为背景去掉,并把该块标示为0,同样存在矩阵A中; (2)以X?B;

(3) 以X?10111011作为结构元素对已知的二值矩阵A做开运算,可得到矩阵

为结构元素对二值矩阵B做闭运算,得到矩阵C,矩阵C

为一个二值矩阵(只包含1和0),对应元素为1的作为目标留下,对应元素为0的作为背景去除。

12

该算法的第(1)步与方差法的算法一致,第(2)、(3)步骤利用数字图像处理中的开运算与闭运算处理,其原理为:开运算(先腐蚀后膨胀)用来消除小物体、在纤细点处分离物体,去除被误当成目标的背景块;闭运算(先膨胀后腐蚀)用来填充物体内细小空洞、连接邻近物体,恢复指纹背景中被误当成背景而去除的目标块。

Matlab程序见附录A。结果图如下:

图 2-4 图像分割

2.2 图像的二值化

2.2.1 方向图

因为许多二值化算法和增强滤波算法都用到了方向图,因此方向图的计算对后续的各种算法都有很大帮助。

指纹图像有着自己独特和固有的特征,其中指纹的方向性、纹理性都很强,可以看作是一个流状模型,该模型可以用方向图来具体表示。

方向图描述了指纹图像中的像素点、小块指纹所在处的脊线或谷线的切线方向,因为指纹图像在一块不大的区域内的指纹方向几近相同,因此在计

13

算中,一般以该点所在的小块方向来代替该像素点的方向。

为方便认知,以指纹图像为模板,画一环形区域来表示指纹,其中,扇形区域中的小块表示指纹被分块后的小块。全局信息如下图2-5所示:

图 2-5 指纹小块模型

方向图计算的基本思想: 在原灰度的指纹图像中计算每小块在每个方向上的统计量, 由这些统计量在每个小块方向上的差异来确定该小块的方向。 2.2.2 指纹图像二值化

二值化就是将图像上的像素点的灰度值设置为0或1,也就是将整个图像呈现出明显的黑白视觉效果。指纹图像中包括目标和背景还有众多噪声,要想从原始的指纹图像中提取出目标,一般用的方法是设定一个阈值T,用T将图像中像素数据分成两部分,若输入灰度图像的函数为: ?A f?x,y????0f(x,y)?T (2-4)

f(x,y)?T通过求解阈值T,从而把图像f(x,y)分成目标和背景两个区域,其中大于T的像素群为目标区域,小于等于T的像素群为背景区域,阈值的选取原则是:(1)尽可能的多保存图像信息;(2)尽可能的减少噪声。

本文将讨论两种二值化方法,选取其中一个作为效果最好的算法。

14

2.2.3 静态阈值二值化

静态阈值二值化是根据灰度图像的直方图为整幅图像来确定一个阈值,也可以根据相关经验来确定阈值,阈值的确定一般分为两种: (1)人工设定阈值:该方案是根据实验或经验设置一个固定的阈值,然后对每个像素按照式f?x,y????A?0f(x,y)?T来进行二值化处理。 f(x,y)?T (2)按照直方图确定阈值:利用原灰度图像分部的直方图来确定,设灰度值f取值是0~255之间的整数,f=0为黑色,f=255为白色,p(fk)表示灰度值为k的概率,nk表示灰度值为k的像素的个数,n为像素的个数。则有公式如下: p(fk)?nkn(0?fk?255) (2-5) 通常以p(fk)为纵坐标,fk为横坐标的图像为指纹灰度图的直方图,该算法的直方图有两个峰值,对应目标和背景,阈值取双峰的波谷的值,且双峰越陡,二值化效果越好。该算法速度快,简单且易于理解,但效果较差。 2.2.4 基于方向场的二值化

采集到的指纹图像一般都有比较清晰的方向场,方向场估计得准确与否直接决定了图像二值化算法的效果。

为估计方向场,我们把指纹脊线的走向分为如下8个方向,如图2-6所示:

15


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

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

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

马上注册会员

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