指纹识别-(8)指纹图像预处理算法之图像分割

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

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

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

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

  1. 将指纹图像分为 w × w   ( 8 × 8 ) w\times w\ (8\times8) w×w (8×8)的小块;

  2. 计算每个指纹块的灰度强度的平均值,灰度强度的平均值的计算公式如公式:
    M = 1 w × w ∑ u = x − w 2 u = x + w 2 ∑ v = y − w 2 v = y + w 2 I ( u , v ) M=\frac{1}{w\times w}\sum_{u=x-\frac{w}{2}}^{u=x+\frac{w}{2}}\sum_{v=y-\frac{w}{2}}^{v=y+\frac{w}{2}}I\left(u,v\right) M=w×w1u=x2wu=x+2wv=y2wv=y+2wI(u,v)

  3. 计算每个指纹块的灰度强度的方差,灰度强度的方差的计算公式如公式:
    V A R = 1 w × w ∑ u = x − w 2 u = x + w 2 ∑ v = y − w 2 v = y + w 2 ( I ( u , v ) − M ) 2 VAR=\frac{1}{w\times w}\sum_{u=x-\frac{w}{2}}^{u=x+\frac{w}{2}}\sum_{v=y-\frac{w}{2}}^{v=y+\frac{w}{2}}\left(I\left(u,v\right)-M\right)^2 VAR=w×w1u=x2wu=x+2wv=y2wv=y+2w(I(u,v)M)2

  4. 使用固定阈值方法或者自适应阈值方法进行阈值的选取,通过每个指纹块的方差阈值的比较判断是否为指纹前景。

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

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

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

采用的指纹分割方法是基于指纹图像的梯度场,但是对指纹图像梯度场的计算会有一些变化。、对于指纹图像,使用Sobel算子来计算图像的梯度。
图显示了以点 ( x ,   y ) (x,\ y) (x, y)为中心的周围八个邻域点。
像素点\left(x,y\right)的八邻域
在之前已介绍了指纹梯度场的计算方法,写成一般形式为公式3-3,其中 G x ( x , y ) G_x\left(x,y\right) Gx(x,y)为x方向的梯度, G y ( x , y ) G_y\left(x,y\right) Gy(x,y)为y方向的梯度。
{ G x ( x , y ) = a 2 + 2 a 3 + a 4 − ( a 0 + 2 a 7 + a 6 ) G y ( x , y ) = a 0 + 2 a 1 + a 2 − ( a 6 + 2 a 5 + a 4 ) \left\{\begin{array}{l} G_{x}(x, y)=a_{2}+2 a_{3}+a_{4}-\left(a_{0}+2 a_{7}+a_{6}\right) \\ G_{y}(x, y)=a_{0}+2 a_{1}+a_{2}-\left(a_{6}+2 a_{5}+a_{4}\right) \end{array}\right. {Gx(x,y)=a2+2a3+a4(a0+2a7+a6)Gy(x,y)=a0+2a1+a2(a6+2a5+a4)
在该方法中,像素点\left(x,y\right)的梯度是以点为中心的8×8的像素块中点的梯度的平均值作为像素点的梯度,如公式所示。
{ G x ( x , y ) = 1 r 2 ∑ u = − r 2 r 2 ∑ v = − r 2 r 2 G x ( u , v ) G y ( x , y ) = 1 r 2 ∑ u = − r 2 r 2 ∑ v = − r 2 r 2 G y ( u , v ) \left\{\begin{array}{l} G_{x}(x, y)=\frac{1}{r^{2}} \sum_{u=-\frac{r}{2}}^{\frac{r}{2}} \sum_{v=-\frac{r}{2}}^{\frac{r}{2}} G_{x}(u, v) \\ G_{y}(x, y)=\frac{1}{r^{2}} \sum_{u=-\frac{r}{2}}^{\frac{r}{2}} \sum_{v=-\frac{r}{2}}^{\frac{r}{2}} G_{y}(u, v) \end{array}\right. {Gx(x,y)=r21u=2r2rv=2r2rGx(u,v)Gy(x,y)=r21u=2r2rv=2r2rGy(u,v)
r为8,表示像素块宽度,卷积步长为1,并且将梯度G\left(x,y\right)的计算简化为公式。
G ( x , y ) = ∣ G x ( x , y ) ∣ + ∣ G y ( x , y ) ∣ G\left(x,y\right)={|G}_x\left(x,y\right)|+{|G}_y\left(x,y\right)| G(x,y)=Gx(x,y)+Gy(x,y)

G ′ ( x , y ) = G ( x , y ) max ⁡ ( G ( x , y ) ) G^\prime\left(x,y\right)=\frac{G\left(x,y\right)}{\max(G\left(x,y\right))} G(x,y)=max(G(x,y))G(x,y)
改进的指纹图像梯度场

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

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

3)Otsu’s的方法

使指纹图像的总像素点为 N N N p i p_i pi表示梯度为i发生的可能性。假定阈值为 k k k C 1 C_1 C1为灰度强度在 [ 0 , 1 , 2 , … , k ] \left[0,1,2,\ldots,k\right] [0,1,2,,k]内的像素点集合, C 2 C_2 C2为灰度强度在 [ k + 1 , … , L − 1 ] \left[k+1,\ldots,L-1\right] [k+1,,L1]内的像素点集合, L L L为指纹图像可能的像素值的最大值,这里为256,因为指纹图像为位深8位的灰度图。 P 1 ( k ) P_1(k) P1(k)表示 C 1 C_1 C1发生的可能性,则有公式如下:
P 1 ( k ) = ∑ i = 0 k p i P_1\left(k\right)=\sum_{i=0}^{k}p_i P1(k)=i=0kpi
m 1 ( k ) m_1\left(k\right) m1(k) m 2 ( k ) m_2\left(k\right) m2(k)分别是集合 C 1 C_1 C1 C 2 C_2 C2中像素的平均灰度强度,而 m G m_G mG是整个图像的平均灰度强度,由等式计算得出。
{ m 1 ( k ) = ∑ i = 0 k i p i m 2 ( k ) = ∑ i = k + 1 L − 1 i p i m G = ∑ i = 0 L − 1 i p i \left\{\begin{aligned} m_{1}(k) &=\sum_{i=0}^{k} i p_{i} \\ m_{2}(k) &=\sum_{i=k+1}^{L-1} i p_{i} \\ m_{G} &=\sum_{i=0}^{L-1} i p_{i} \end{aligned}\right. m1(k)m2(k)mG=i=0kipi=i=k+1L1ipi=i=0L1ipi
最大类间方差的表达式为公式:
σ 2 = [ m G P 1 ( k ) − m 1 ( k ) ] P 1 ( k ) [ 1 − P 1 ( k ) ] \sigma^2=\frac{[m_GP_1(k)-m_1(k)]}{P_1(k)[1-P_1(k)]} σ2=P1(k)[1P1(k)][mGP1(k)m1(k)]
通过遍历阈值k来得到最大的类间方差,使用阈值k对指纹梯度图进行分割。指纹图像的分割结果如图。
在这里插入图片描述
可以进行一些修正或对大津算法进行权值处理以得到更好的分割图,这里对得到最大的类间方差的对应阈值k减去0.25,得到:
在这里插入图片描述

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

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

代码参考:https://download.csdn.net/download/xuhe93/85802879?spm=1001.2014.3001.5503

  • 9
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书生伯言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值