一种改进的基于方向图的指纹细化算法

时间:2022-06-25 07:00:36

一种改进的基于方向图的指纹细化算法

在深入研究了基于方向图的指纹细化算法后,提出了一种效率更高的改进算法。新的算法运用了数据标记的方法,在保证处理质量的前提下,不但加快了细化的速度,同时还可以提取指纹图像的细节特征点。

方向图指纹数据标记细化

0引言

细化处理是指为了减少所需处理的信息量,便于提取指纹特征,需要把二值图像转换为宽度仅为一个像素点的线型图。这种从二值图中抽取“骨架”的过程称为细化。由于指纹识别只对纹线的走向感兴趣,不关心它的粗细,因此细化后的指纹图像可以简化并改善后续的指纹特征提取工作,进一步压缩了指纹图像数据,提高识别的准确性。

一个好的细化算法应满足以下的要求:收敛性:迭代必须是熟练的;连接性:不破坏纹线的连接性;拓扑性:不引起纹线的逐步吞食;保持性:保护指纹的细节特征;细化性:骨架纹线的宽度为一个像素;中轴性:骨架尽可能接近纹线中心线;快速性:方法简单、速度快。

从以上7点要求中可以发现,一个细化算法的优劣,主要是从细化质量和细化速度两个方面进行评价。而基于脊线方向的指纹细化算法本身除了不满足连续性之外,其他的要求都能得到很好的满足。而这一缺陷也可以得到很好的弥补。

1基于脊线方向的指纹细化算法

此细化算法的思路是:沿指纹纹线走向的垂直方向,以单位像素为步长,逐步扫描脊线,求的纹线的中心点,由于指纹纹线的变化比较均匀,所以这些中心点的位置即可合成细化了的指纹纹线的骨架。

在实际情况下,指纹纹线的角度变化是连续的,而指纹图像一般是由像素矩阵组成,是离散的。所以此算法只取了四个扫描方向:水平方向,垂直方向,45°方向和135°方向。

设指纹图像大小为M*N,指纹图像的方向图矩阵为D,大小为M*N,细化的步骤如下:

(1)从左上角开始,水平扫描整幅指纹图像,将结果保存到M*N矩阵中,脊线中心位置记做1,其他为0。称此矩阵为水平扫描矩阵。

(2)从左上角开始,垂直扫描整幅指纹图像,将结果保存到M*N矩阵中,脊线中心位置记做1,其他为0。称此矩阵为垂直扫描矩阵。

(3)从左上角开始,沿45°扫描整幅指纹图像,将结果保存到M*N矩阵中,脊线中心位置记做1,其他为0。称此矩阵为45°扫描矩阵。

(4)从左上角开始,沿135°扫描整幅指纹图像,将结果保存到M*N矩阵中,脊线中心位置记做1,其他为0。称此矩阵为135°扫描矩阵。

(5)由指纹图像左上角开始,根据图像的像素位置,逐点查找方向图矩阵D可得点方向,再查与该点垂直方向的中心扫描矩阵的值(如果垂直方向不属于四个扫描方向中的任何一个,则取相近的方向,如:垂直方向为15°,则取水平扫描矩阵值;30°则取45°扫描矩阵的值等等),直到扫描完整幅指纹图像为止,完成整幅图像的细化。

这种方法的优点是:细化的时间与图像的大小成正比,不需要迭代,所以处理的速度快,细化后的纹线宽度为1个像素,且基本位于纹线中心。细化后的指纹纹线光滑,没有毛刺。除了纹线的分叉点以外不破坏纹线的连续性,不引起纹线的逐步吞食。

但是不足之处在于不能正确反映分叉处的细节特征。细化前的一个分叉点(如图1所示)在细化后产生了断裂(如图2所示)。因此需要对细化后的图像进行修复。修复的思路是:对细化后的纹线的分叉点进行局部膨胀,再利用其它的细化算法(如数学形态学细化算法)进行二次细化。

2改进的细化算法

由上面的描述我们可以看出,在整个细化的过程中对指纹图像进行了多次扫描,而其中很大一部分是在做无用功。而我们改进的算法则可以很好的避免这个问题。

算法描述如下:

由指纹图像左上角开始,从左到右,从上到下依次扫描各个像素,当遇到目标点(像素为1的点)时:

(1)根据该像素位置,逐点查找方向图矩阵D可得点方向。

(2)取与该点的点方向垂直的方向(如果垂直方向不属于水平方向、45°方向、垂直方向和135°方向中的任何一个,则取相近的方向,如:垂直方向为15°,则取水平方向;30°则取45°方向等等),沿此方向求得该段目标像素的中心位置,记做1,该段其余的目标像素位置记为0。

(3)继续扫描图像,寻找下一个目标点,直至整幅图像扫描结束为止。如此扫描一遍之后便可得到全部的中心位置,形成初始细化图像。

(4)从左到右,从上到下扫描初始细化图像,当遇到端点时做以下操作以此端点为中心,在2~3个像素的范围内寻找有无其他的端点。

①如果没有端点则将此点标记为细节特征点,因为它可能是端点,也可能是在图像采集或图像分割时形成的指纹图像边缘的伪特征点,有待后续操作;

②如果除此点之外,有一个端点则将此两点标记为细节特征点,因为它们可能是两个端点,或是细化时产生的断点,或是一个极小的短纹等,有待后续操作;

③如果出此点之外,有两个或两个以上的端点,则说明此处原来是一个分叉点,转到(5)处理。

(5)求出这几个端点的中心位置,并把此位置定义为分叉点的交点,以此交点为中心,连接周围的端点形成连续的纹线,并标记此中心位置为细节特征点。

(6)继续扫描初始细化图像,寻找下一个端点,直至整幅图像扫描结束为止。

上一篇:简易采场支护器的设计与应用 下一篇:云水浩渺万里程