DIY编程器网

标题: 用迭代法求指纹图像中的阀值 [打印本页]

作者: liyf    时间: 2014-10-5 10:04
标题: 用迭代法求指纹图像中的阀值
用迭代法求指纹图像中的阀值


摘要:给出使用直方图方法求阀值的例子;结合直方图方法提出用于计算最优阀值的迭代法,该方法是基于256级的指纹灰度图像计算;最后给出迭代法中初值的选择方法。实验结果证明该方法切实可行。    关键词:二值化 直方图 阀值 迭代法
在指纹识别系统中,通常的指纹处理算法都需要对指纹图像进行二值化处理,二值化之后可以对指纹图像进行细化和特征提取等工作。二值化过程需要确定合适的阀值,当相应的灰度值大于该阀值时则把该灰度值设的阀值,当相应的灰度值大于该阀值时对把该灰度值设为255(白),否则设为0(黑)。二值化过程使得指纹图像的纹线变得更加清晰。确定阀值的方法有很多,例如直方图法、迭代法等。对于有两个波峰的指纹图像,直方图法很容易得到合适的阀值,两个波峰的波谷即为阀值。但是对于只有一个波峰或没有波峰的指纹图像,确定合适的阀值很困难。如果使用文中提到的迭代法,不管有多少个波峰,都能很容易找到最优的阀值。迭代法的实现是基于256级灰度图像的直方图,其迭代初值的选择决定了该方法的收敛速度。最后,文中使用大量实验结果证明该迭代法的可行性,以及迭代初值的选择方法。

1 直方图法确定阀值

通常指纹图像都是256级灰度图像,因此其直方图就是分别计算图像灰度从0-255的像素个数并用图表示出来,如图1所示。图1左图为指纹图像原因,右图为直方图。通过直方图法确定图像的阀值很简单。图1所示的指纹图像有两个波峰,波峰之间的波谷即是该指纹图像的阀值。
通过直方图法确定阀值必须保证指纹图像有两个波峰,而对于如图2所示的指纹图像,该方法就无能为力了。图2所示的图像吸有一个明显的波峰,没有所谓的波谷,因此很难找到一个合适的阀值。

2 迭代法确定阀值

迭代法求指纹图像的阀值也离不开图像的直方图。下面将给出其计算公式。一般情况下指纹图像的灰度值使用256级,也就是说灰度值从0-255变化。设Si表示指纹图像内灰度从0-255的像素点数目,i=0-255;Ti表示阀值,则如下公式:

若指定一个极小值ε,有:
|Ti+1-Ti|<ε (6)
则Ti+1即为最后的迭代结果,否则令Ti=Ti+1重新执行上面的计算过程,直到满足(6)式的条件。上述的迭代法用计算机实现很简单,只需按上面的公式列式计算即可。

    与直方图法相比,迭代法的计算量会大一些,但是它会找到任意指纹图像的最优阀值。
3 实验结果
本文按照上面的迭代法对不同的指纹图像进行迭代计算,求出其最优阀值,如图3、图4、图5、图6所示。这些指纹图像中前面三个是用光学传感器采集的,后面一个是用电容传感器的采集的,大小不完全一样。首先给出每一帧指纹图像的直方图,然后列表给出了它们的最优阀值,以及它们在不同初值下的迭代次数。

    对上述四幅指纹图像按文中提到的迭代方法进行迭代计算,最后得到的阀值如表1所示,它们在不同迭代初值下的迭代次数如表2所示。

表1 指纹图像的最优阀值
图像编号图像3图像4图像5图像6
最优阀值140173184138
表2
初始值/次数图像3图像4图像5图像6
50迭代失败
1006664
1285553
1401552
1705343
2006334
240迭代失败44迭代失败
从表2可以看出,在不同的迭代初值下迭代次数并不完全相同,特别是当初值迭得特别小或特别大时还会出现迭代失败的情况,因此迭代初值的选取非常关键。从表1可以看到,同一类型的传感器得到的阀值相差很小,而不同类型的传感器得到的阀相差较大。因此,对某一种类型的传感器,可以采取自适应的方式调节初值。这样初值就会很接近最后的阀值,迭代次数也会相应减少。
作者: 李小路    时间: 2021-8-3 19:45
谢谢分享!




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2