先计算出指纹的脊线方向,然后再根据脊线方向对指纹进行增强、滤波和二值化,最后再细化,完成预处理过程。
1.脊线方向的计算[6]
提取脊线方向方法为:
(1)将指纹图像分割成足够小的子块,以满足块中纹理近似平行的条件。将图像分为16×16的非重叠小块。
(2)对每个子块的每一个点利用Sobel算子分别计算其x的方向梯度和y的方向梯度:
式中,Sx和Sy——Sobel 算子;
f(i,j)——各像素的灰度值。
(3)根据梯度值,每个子块方向的计算公式如下:
式中,W——图像块的宽度,得到θ 后再将其量化为8个方向,从而得到指纹图像的脊线方向。
2.采用傅里叶变换增强指纹图像[7]
傅里叶增强步骤如下:
把指纹图像分成32×32的许多小图像块,按照如下的算式进行傅里叶变换:
式中, u=0, 1, 2, …, 31; v=0, 1, 2, …, 31; x=0, 1, 2, …,31;y=0,1,2,…,31。
滤掉频率过高的和过低的频带,因为这些频带可以被当做噪声,将这些频率对应的幅度置为0。
根据上式计算增加后的图像块:
其中,u,v,x,y取值同上。
式中k是根据实际图像由经验确定的恒定值。如果k值稍大,可以增强脊的外观特征,填补脊中的小洞;如果k值过大会导致脊之间的误连接,端点变成分支点。经过傅里叶变换增强后的增强图像改善了脊上误断点之间的误连接,端点变成分支点。即指纹图像纹路清晰、饱满,对比度高,在图像增强的同时滤除了各种干扰点和噪点,有利于后续的处理。(www.daowen.com)
3.指纹图像二值化[8]
二值化是为了把灰度图像转为0-1的黑白图像,是采取局部自适应的阈值的方法,利用局部图像强度状况来决定二值化的阈值,即把图像变成二值图像(黑白图像)。
(1)基于方向场的局部阈值二值化
若该像素处的脊方向为i,先用估计方向场时用到的方法计算该像素处在方向i和垂直方向iVar =(i+4)mod 8的灰度平均值Gmear[i]和Gmear[iVar],然后将该像素二值化为:
式中, iVar表示二值图像中该像素处的值, 255为二值图像中的图像背景和谷线。
(2)使用低通滤波后的图像进行二值化的办法
设指纹增强后的图像上任意一点的像素值为G(i,j),使用如下算式对图像进行低通滤波:
式中,G′(i,j)就是滤波后的图像,取一个合适的W值,然后比较滤波前后图像的数值,将图像二值化。
基于脊线方向二值化方法充分利用了指纹的脊线指向,经二值化后纹路更清晰。
4.数据的转换[9]
将采集到的指纹图像转换为数字型数据。在图书馆集成管理系统中,与读者身份识别相对应是用一维或二维条码数字相关联。而且在系统中直接使用图像信号作关联点是不现实的。因为图像信号的存储容量和比对流程以及其要求的相应设备较为复杂。所以在证件系统的实际使用中,要将图像信号转换为数字型数据。
根据指纹图像中心点、三角点、端点、叉点等永久性特征,以及其图像一般为黑白图或灰度图,可利用二维空间值或MATLAB对图像进行数据转换并用矩阵方式表示出来。
首先,对图像进行取样。正确取样的条件是:ΔU≥2LU,ΔV ≥2LV,ΔX≤Π/LU,ΔY≤Π/LV。其中,ΔX、ΔY为X、Y方向的取样间隔,而ΔU= 2Π/ΔX,ΔV= 2Π/ΔY。上式中“等于”条件的取样是著名的奈奎斯特取样定理,即在这样的通带宽度下,图像可以不失真地重现。
在进行正确的取样后,可利用MATLAB对图像进行转换。在实际转换时,其原理是利用二维矩阵的X、Y、Z三轴来代表指纹的黑白及灰度。在取样后的图像上黑的位置可设为1,白的位置可设为0。也可反其道行之。
如一枚指纹图像转换出来的矩阵为:
这样,通过矩阵R可计算出图像相应的数值,直接存储在读者数据库中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。