指纹识别-(5)指纹图像预处理算法之图像方向场

3、指纹图像方向场

指纹的方向场是指纹图像的一种固有属性,反映了指纹图像场的中心、圆形纹线趋势场、斜角度直纹线趋势场、水平纹线趋势场及混合趋势场等。方向场求取最简单的方法就是利用梯度场,方向角\theta即是以 ( x , y ) \left(x,y\right) (x,y)为中心的与 ( x , y ) \left(x,y\right) (x,y)处梯度相位角正交所获得的角度。这种方法虽然简单,但是这种方向估计反映的脊谷方向过于精细,对指纹图像的噪声非常敏感。Ratha在1995年提出了一种被广为接受的方向场的计算方法,以 ( x , y ) \left(x,y\right) (x,y)为中心的 16 × 16 16\times16 16×16的窗口的梯度来计算方向。
指纹图像方向场的计算步骤如下:

  1. 将指纹图像分为 w × w   ( 16 × 16 ) w\times w\ (16\times16) w×w (16×16)的小块;
  2. 通过使用 3 × 3 3\times3 3×3 Sobel算子计算像素点 ( x , y ) \left(x,y\right) (x,y) x x x方向的梯度 ∇ x \nabla_x x y y y方向的梯度 ∇ y \nabla_y y
  3. 利用以下公式计算以像素点 ( x , y ) \left(x,y\right) (x,y)为中心的每个块的局部方向。

G x y ( x , y ) = ∑ u = x − w 2 u = x + w 2 ∑ v = y − w 2 v = y + w 2 2 ∇ x ( u , v ) ∇ y ( u , v ) G_{xy}\left(x,y\right)=\sum_{u=x-\frac{w}{2}}^{u=x+\frac{w}{2}}\sum_{v=y-\frac{w}{2}}^{v=y+\frac{w}{2}}{2\nabla_x\left(u,v\right)\nabla_y\left(u,v\right)} Gxy(x,y)=u=x2wu=x+2wv=y2wv=y+2w2x(u,v)y(u,v)
G x x ( x , y ) = ∑ u = x − w 2 u = x + w 2 ∑ v = y − w 2 v = y + w 2 ( ∇ x ( u , v ) ) 2 G_{xx}\left(x,y\right)=\sum_{u=x-\frac{w}{2}}^{u=x+\frac{w}{2}}\sum_{v=y-\frac{w}{2}}^{v=y+\frac{w}{2}}\left(\nabla_{x\left(u,v\right)}\right)^2 Gxx(x,y)=u=x2wu=x+2wv=y2wv=y+2w(x(u,v))2
G y y ( x , y ) = ∑ u = x − w 2 u = x + w 2 ∑ v = y − w 2 v = y + w 2 ( ∇ y ( u , v ) ) 2 G_{yy}\left(x,y\right)=\sum_{u=x-\frac{w}{2}}^{u=x+\frac{w}{2}}\sum_{v=y-\frac{w}{2}}^{v=y+\frac{w}{2}}\left(\nabla_y\left(u,v\right)\right)^2 Gyy(x,y)=u=x2wu=x+2wv=y2wv=y+2w(y(u,v))2
θ ( x , y ) = 1 2 t a n − 1 ( 2 G x y ( x , y ) G x x ( x , y ) − G y y ( x , y ) ) + 90 ° \theta\left(x,y\right)=\frac{1}{2}tan^{-1}\left(\frac{2G_{xy}\left(x,y\right)}{G_{xx}\left(x,y\right)-G_{yy}\left(x,y\right)}\right)+90° θ(x,y)=21tan1(Gxx(x,y)Gyy(x,y)2Gxy(x,y))+90°
4. 由于输入图像中存在噪声、损坏的山脊和山谷结构、细节等,估计的局部山脊方向\theta\left(x,y\right)可能并不总是正确的。由于局部脊谷方向在没有奇异点出现的邻域内变化缓慢,因此可以使用低通滤波器来修正不正确的局部脊线方向。为了进行低通滤波,需要将方向图转换为一个连续的向量场,定义如下:
Φ x ( i , j ) = c o s ( 2 θ ( i , j ) ) \mathrm{\Phi}_x\left(i,j\right)=cos{\left(2\theta\left(i,j\right)\right)} Φx(i,j)=cos(2θ(i,j))
Φ y ( i , j ) = sin ⁡ ( 2 θ ( i , j ) ) \Phi_y\left(i,j\right)=\sin{\left(2\theta\left(i,j\right)\right)} Φy(i,j)=sin(2θ(i,j))
利用得到的向量场,可以进行的低通滤波如下,滤波卷积块的尺寸为 w 0 × w 0 w_0\times w_0 w0×w0 w 0 w_0 w0一般为5:
Φ x ′ ( x , y ) = ∑ u = − w 0 / 2 w 0 / 2 ∑ v = − w 0 / 2 w 0 / 2 W ( u , v ) Φ x ( x − u w , y − v w ) \Phi_x^\prime\left(x,y\right)=\sum_{u=-w_0/2}^{w_0/2}\sum_{v=-w_0/2}^{w_0/2}{W\left(u,v\right)\Phi_x\left(x-uw,y-vw\right)} Φx(x,y)=u=w0/2w0/2v=w0/2w0/2W(u,v)Φx(xuw,yvw)
Φ y ′ ( x , y ) = ∑ u = − w 0 / 2 w 0 / 2 ∑ v = − w 0 / 2 w 0 / 2 W ( u , v ) Φ y ( x − u w , y − v w ) \Phi_y^\prime\left(x,y\right)=\sum_{u=-w_0/2}^{w_0/2}\sum_{v=-w_0/2}^{w_0/2}{W\left(u,v\right)\Phi_y\left(x-uw,y-vw\right)} Φy(x,y)=u=w0/2w0/2v=w0/2w0/2W(u,v)Φy(xuw,yvw)
5. 由以下公式得到最终的局部脊线方向。
O ( x , y ) = 1 2 t a n − 1 ( Φ y ′ ( x , y ) Φ x ′ ( x , y ) ) O\left(x,y\right)=\frac{1}{2}tan^{-1}\left(\frac{\Phi_y^\prime\left(x,y\right)}{\Phi_x^\prime\left(x,y\right)}\right) O(x,y)=21tan1(Φx(x,y)Φy(x,y))
指纹图像的方向场及使用高斯核滤波后的方向场:
在这里插入图片描述
在这里插入图片描述
代码参考:https://download.csdn.net/download/xuhe93/85802879?spm=1001.2014.3001.5503

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

书生伯言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值