知识文库

指纹图像进行特征提 指纹图像的细化处理

时间:2016-11-18 08:30:00 作者:柯绿科技

指纹特征

要对指纹图像进行特征提取,必须进行细化处理。

细化又称为骨架化,即在不影响原图像拓扑连接关系的条件下,尽可能用最少的迭代次数,快速而准确的将宽度大于一个像素的图形线条转变为一个像素宽的线条的处理过程,也就是抽取图像的骨架。

细化不但能够很好的展现原图像的拓扑结构形状,而且可以大大减少存储图像所需的内存空间,因为它只需存储图像中必需的结构信息,在图像处理中简化了数据结构。因此,细化是图像分析,信息压缩,特征抽取及模式识别中常用的技术,在图像处理中占有重要地位。例如在文字识别和指纹识别中,通过细化可以得到其单像素宽度的文字笔划或指纹脊线,这有利于提取文字和指纹特征。在工程图识别中,通过细化得到骨架图像,有利于进行各种图形、线条的提取和各种符号的识别等。显然,经过细化处理得到的骨架图像,将为后续的图像分析处理提供一种紧凑而有效的表示形式,减少了以后处理步骤所需的计算时间和空间。

一个好的细化算法应该达到如下要求:

(1)骨架图像必须保持原图像的连通性;

(2)骨架图像应尽可能是原图像的中心线;

(3)细化结果要尽可能细,争取得到一个像素宽的线条图像;

(4)应使用尽可能少的迭代次数。

细化过程要不断重复扫描图像,在图像处理中是耗时较多的操作。因此,研究如何用最少的迭代次数得到完全细化的图像,缩短细化时间是很有意义的。已有的细化算法按迭代方式不同分为串行算法和并行算法。

在串行细化算法中,当前迭代的结果不仅取决于前一次的迭代图像,而且与当前处理情况有关;而在并行方式中,当前迭代仅仅由前一次的迭代情况决定。串行细化算法的处理结果依赖于对像素处理的先后顺序,因而像素点的消除或保留不可预测。

并行细化算法对图像进行细化时利用相同的条件同时检测所有像素点,其结果具有各向同性,因此从算法原理上并行方法优于串行方法。

由于并行细化算法具有快速而准确的特性,因此它一直是人们研究的热点,并且相应的提出了许多并行细化算法,如OPTA细化算法,RW,Hall细化算法,Rosenfeld细化算法,Zhang&Suen细化算法以及ZR细化算法等等。性能上这些算法各有所长。

本文采用查表的并行处理算法。

对于任意形状的区域,细化实质上是腐蚀操作的变体,细化过程中要根据每个像素点的八个相邻点的情况来判断该点是否可以剔除或保留。下面给出几个例子来说明如何判断当前像素点是否该保留或剔除。

图给出了当前需要处理的像素点在不同的八邻域条件下的情况,可以看出:(a)不能删,因为它是个内部点,我们要求的是骨架,如果连内部点也删了,骨架也会被掏空的;(b)不能删,和((a)是同样的道理;(。)可以删,这样的点不是骨架;(d)不能删,因为删掉后,原来相连的部分断开了;(e)可以删,这样的点不是骨架;(f)不能删,因为它是直线的端点,如果这样的点删了,那么最后整个直线也被删了,剩不下什么;(g)不能删,因为孤立点的骨架就是它自身。

总结一下,可以提出如下判决准则:

(1)内部点不能删除;

(2)孤立点不能删除;

(3)直线端点不能删除;

(4)如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除。

根据上述的准则,可以定义一张索引表,包含256个元素,对应于任何一点的8邻域的256种情况。每个元素赋予0或者1。1表示该点可删,0表示该点保留。

为了避免分裂物体,细化的过程分为两个步骤,第一步是正常的腐蚀操作,但是它是有条件的,也就是说那些被标记的可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则的话保留这些边界点。以上的步骤是在一个3×3邻域内运算,可以通过查表实现细化的操作。

(1)定义一个3×3模板和一个细化操作索引表;

(2)对二值图像从上到下、从左到右进行扫描;该过程结束后再对图像进行从左到右,从上到下的扫描:如果图像中当前像素点的灰度值为“0”,且其左右(第一次扫描过程考虑左右像素点)或上下(第二次扫描过程考虑上下两个像素点)两个像素点中有任意一个为“255”则转至步骤三,否则回转到步骤二;

(3)该像素点为中心的3x3区域内的各个像素值和定义的模板中的权值进行卷积求和,得到表中的查找索引值k;

(4)根据这个索引值k得到表里相应的数据,如果为“1”,那么该像素点的灰度值设为“255”,如果为“0”,则该像素点的灰度值为“0”。

(5)图像从头至尾扫描二遍后,如果该次扫描修改了图像中的点,则跳转至步骤二,开始新的一轮扫描。否则图像细化结束。

版权所有:http://www.aikelv.com 转载请注明出处