如图指纹图像通常由脊谷区域、图像背景及边界、墨迹斑、模糊的可恢复的脊谷区域、不可恢复的模糊区域组成。在语义分割领域,图像的分割是将ROI(region of interest)分割出来。在指纹图像的分割领域,ROI一般定义为指纹前景即脊谷区域,本文所述的指纹图像的分割将可恢复区域及完好区域作为ROI。

数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python

在线指纹识别算法的一个重要步骤是对指纹图像的分割。指纹图像分割将包括脊线和谷线在内的有效区域从待分割的指纹图像中分离出来,从而达到了指纹识别的标准,降低了计算复杂度,提高了指纹识别系统的处理速度。指纹图像的分割的目标为将指纹前景区域进行分割,以避免在噪声和背景区域提取特征。Mehtre[34]认为一个好的指纹分割算法应当具有以下特点:
1、它应该检测图像中的污迹和噪声区域。
2、它不应该是敏感的对比度输入图像,因为对比度可以很容易地改变。
3、分割的结果应该对输入图像的增强保持不变。
4、它应该为不同的图像质量的图像提供标准一致的结果。

1、基于灰度方差的指纹图像分割方法

基于方差的指纹图像分割方法是使用最为广泛的,其分割的依据是每个块中与方向场垂直方向上的灰度水平的方差。基于方差的分割方法的基本的假设是,有噪声的图像区域没有方向依赖性,而指纹前景区域在与方向正交的方向上表现出非常高的方差,而在脊线上表现出非常低的方差。用方差来决定对应指纹块的质量,高方差的指纹块的质量为好,低方差的指纹块的质量为差。基于灰度方差的指纹图像分割算法如下:

  1. 将指纹图像分为数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_02的小块;
  2. 计算每个指纹块的灰度强度的平均值,灰度强度的平均值的计算公式如公式:
    数字图像处理 指纹处理 python 指纹图像处理算法_算法_03
  3. 计算每个指纹块的灰度强度的方差,灰度强度的方差的计算公式如公式:
    数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_04
  4. 使用固定阈值方法或者自适应阈值方法进行阈值的选取,通过每个指纹块的方差阈值的比较判断是否为指纹前景。

2、基于梯度和大津算法的指纹图像分割方法

采用的指纹分割方法采用了一种改进的梯度场计算方法。对获得的梯度场图像进行形态开闭操作,以减弱指纹梯度图中前景区域低梯度部分的影响。最后,修正大津算法,使阈值更好地分割了指纹梯度图像。该方法默认为图像边缘4个像素作为指纹背景。

1)改进的指纹图像的梯度场计算

采用的指纹分割方法是基于指纹图像的梯度场,但是对指纹图像梯度场的计算会有一些变化。、对于指纹图像,使用Sobel算子来计算图像的梯度。

图显示了以点数字图像处理 指纹处理 python 指纹图像处理算法_模式识别_05为中心的周围八个邻域点。

数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_06


在之前已介绍了指纹梯度场的计算方法,写成一般形式为公式3-3,其中数字图像处理 指纹处理 python 指纹图像处理算法_模式识别_07为x方向的梯度,数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_08为y方向的梯度。

数字图像处理 指纹处理 python 指纹图像处理算法_算法_09

在该方法中,像素点\left(x,y\right)的梯度是以点为中心的8×8的像素块中点的梯度的平均值作为像素点的梯度,如公式所示。

数字图像处理 指纹处理 python 指纹图像处理算法_算法_10

r为8,表示像素块宽度,卷积步长为1,并且将梯度G\left(x,y\right)的计算简化为公式。

数字图像处理 指纹处理 python 指纹图像处理算法_算法_11数字图像处理 指纹处理 python 指纹图像处理算法_算法_12

数字图像处理 指纹处理 python 指纹图像处理算法_算法_13

2)指纹图像的梯度场的形态学开闭处理

指纹图像经常有折痕和高噪点的出现,所获得的指纹梯度图像在指纹的前景区域可能具有较低的梯度像素块,如图中所示。为了解决高噪声和指纹图像折痕的问题,本文采用形态学上的开闭操作。本文使用数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_14的正方形结构元。形态学开操作会删除所有不包含结构元的部分,使指纹前景和背景边界的轮廓变平滑,同时消除噪声并消除细微突起。形态学上的闭操作将狭窄的裂缝连接起来,并填满比结构元小的孔。当然,闭合操作也倾向于使物体的轮廓光滑。

数字图像处理 指纹处理 python 指纹图像处理算法_计算机视觉_15


数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_16

3)Otsu’s的方法

使指纹图像的总像素点为数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_17数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_18表示梯度为i发生的可能性。假定阈值为数字图像处理 指纹处理 python 指纹图像处理算法_算法_19数字图像处理 指纹处理 python 指纹图像处理算法_算法_20为灰度强度在数字图像处理 指纹处理 python 指纹图像处理算法_计算机视觉_21内的像素点集合,数字图像处理 指纹处理 python 指纹图像处理算法_算法_22为灰度强度在数字图像处理 指纹处理 python 指纹图像处理算法_算法_23内的像素点集合,数字图像处理 指纹处理 python 指纹图像处理算法_模式识别_24为指纹图像可能的像素值的最大值,这里为256,因为指纹图像为位深8位的灰度图。数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_25表示数字图像处理 指纹处理 python 指纹图像处理算法_算法_20发生的可能性,则有公式如下:

数字图像处理 指纹处理 python 指纹图像处理算法_计算机视觉_27

数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_28数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_29分别是集合数字图像处理 指纹处理 python 指纹图像处理算法_算法_20数字图像处理 指纹处理 python 指纹图像处理算法_算法_22中像素的平均灰度强度,而数字图像处理 指纹处理 python 指纹图像处理算法_模式识别_32是整个图像的平均灰度强度,由等式计算得出。

数字图像处理 指纹处理 python 指纹图像处理算法_算法_33

最大类间方差的表达式为公式:

数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_34

通过遍历阈值k来得到最大的类间方差,使用阈值k对指纹梯度图进行分割。指纹图像的分割结果如图。

数字图像处理 指纹处理 python 指纹图像处理算法_算法_35


可以进行一些修正或对大津算法进行权值处理以得到更好的分割图,这里对得到最大的类间方差的对应阈值k减去0.25,得到:

数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_36

3、基于灰度方差、基于梯度和大津与基于梯度直方图分割的结果比较

数字图像处理 指纹处理 python 指纹图像处理算法_数字图像处理 指纹处理 python_37


使用基于梯度和大津的方法与基于灰度方差的像素块分割和基于梯度的像素块的直方图分割进行比较。基于梯度的像素块的直方图分割是将梯度图像划分为数字图像处理 指纹处理 python 指纹图像处理算法_指纹识别_38大小的像素块,获得分割后的梯度图像的直方图,使用10%的百分比估算梯度阈值,然后对梯度图像按阈值进行分割。图显示了通过三种不同方法对指纹进行分割的结果。第一行是指纹原始图像,第二行是基于灰度方差的像素块分割结果,第三行是基于梯度的像素块的直方图分割结果。第四行是本文方法分割的结果。基于梯度和大津的方法分割结果具有特定的轮廓,平滑的边缘,背景区域中没有多余的像素块,并且对折痕具有很强的鲁棒性。通过在线指纹采集器获得的指纹可以得到更好的分割。