当前位置:首页 > 指纹识别算法的matlab实现 - 图文
第2章 指纹图像预处理
图像预处理是对原始图像进行的一种前期处理,方便后续的模块识别。无论采用何种方式获取的指纹图像, 都有一部分由于质量原因, 不能被系统直接识别,因此图像的预处理就显得非常有必要。
指纹图像的预处理目的就是将自己感兴趣的目标区域保留下来,去除背景区域和没有用的部分,同时根据指纹目标区域中脊线的结构特征,采取较好的滤波方法,提高指纹脊线清晰度,平滑脊线边缘的毛刺和空洞,抑制图像噪声,保证指纹特征的可靠提取,并使灰度图像转化成黑白的二值图像,最终得到脊线结构清晰的单像素宽的二值图像。本文预处理的主要流程如图2-1所示。
指纹分割二值化滤波增强细化 图2-1 预处理流程
2.1图像的分割
图像分割是从一幅图像中按一定规则将一些物体或区域加以分离,划分出我们感兴趣的部分或区域。经过分割后的图像更容易进行进一步的分类、分析和识别处理。图像分割要在指纹二值化和滤波及细化之前进行,如此可以减少计算的冗余量,提高指纹检测速度。
采集到的指纹内容分为目标区域和背景区域。在指纹图像中,由脊线和谷线组成的较清晰的部分,称之为目标区域;没有用的部分我们称之为背景
9
区域。指纹识别中的分割就是将有用的目标区域分割出来,去掉没用的背景区域,以避免背景区域的各种干扰。指纹图像可分为四类区域:背景区、不可恢复区、可恢复区、清晰区,如下图2.2所示。
背景区清晰目标区不可恢复区可恢复区
图2-2 指纹图像的四种区域
2.1.1 图像归一化
对指纹图像进行分割处理,消除剩下的背景区域前,首先要进行图像归一化。
对采集好的指纹图像进行归一化处理,是对指纹灰度图的灰度均值和方差做一次调整,使得不论用什么设备采集的指纹图像都可以有预期的方差和均值,从而屏蔽不必要的噪声。指纹归一化不改变指纹质量,只是方便指纹的后续处理并保证程序运行时收敛加快。
由于不同指纹区域的手指压力和强度不同,所以将指纹分为W*H小块,设图像中像素点的灰度值为I(i,j),归一化后的图像G(i,j)来表示,灰度平均值和方差分别用Mi和Vi来表示,则归一化算法如下[4]:
(1)先计算出图像灰度的平均值和方差:
1 Mi?WH ??I(i,j) (2-1)
i?0j?0H?1W?1 10
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
共分享92篇相关文档