8

我有一张从滑动扫描仪拍摄的指纹图像。但是输出没有干净的背景。它看起来像这样:

脏 http://img208.imageshack.us/img208/2622/dirtyie0.png

我想删除背景,以便进一步处理更准确。像这样的东西:

清理 http://img515.imageshack.us/img515/7530/cleanhh6.png

怎么做?可以使用什么图像处理技术(如果有)?谢谢你。

4

5 回答 5

7

您可以检查像素周围区域的频谱。您拥有的高频分量越少,像素就越有可能是背景的一部分。

最复杂的方法是运行像素块的 FFT 并直接检查光谱。由于指纹具有不同的频谱,因此应该很容易将背景与指纹分开。

使用 Wavelets 也值得一试。这使您可以直接将图像分割成感兴趣频率的子带。找到一个好的小波需要大量的练习。

如果您想要一个不过度杀伤的解决方案,如果您运行图像的高通滤波器并将其用于简单的掩码查找通道,则可能会很好。以下是其工作原理的粗略概述:

  1. 标准化图像:最暗像素变为 -1,最亮像素变为 1。如果您更喜欢使用字节,也可以使用 -128 / 127。

  2. 在图像上运行高斯模糊。试验半径。

  3. 从模糊图像中减去归一化图像。通过饱和到 -1 和 1 处理溢出。图像现在大致看起来像是边缘检测到的,但使用灰色阴影而不是二进制掩码。

  4. 对步骤 3 中的图像运行掩码传递。每个像素的绝对值越高,它是指纹一部分的机会就越高。您可以通过选择一个好的阈值来生成掩码。

  5. 使用掩码准备您的源图像。

为了完整起见,您还可以使用图像形态学来做到这一点:

  1. 在图像上运行边缘检测器。使用 Canny 检测器是一个不错的选择,但简单的 3x3 边缘检测器内核也可以。

  2. 在边缘上运行多个膨胀通道。这将在每次通过时在所有白色像素周围增加一个边框,并使边缘更厚。这样做直到指纹的所有区域都被白色像素覆盖。在您的示例中,我认为 4 或 5 次通过就足够了。

  3. 您现在可以直接将扩张后的图像用作蒙版。

链接:扩张http://homepages.inf.ed.ac.uk/rbf/HIPR2/dilate.htm

于 2008-10-22T06:33:02.663 回答
6

您可以尝试使用边缘检测过滤器。这将有助于消除背景噪音,并可能在其余处理过程中增强指纹特征。

Canny 边缘检测器可能是第一个尝试的好方法。甚至还有一个您可以尝试的免费 Web 实现和一个可用的公共域 Java 实现

编辑:很好奇它是如何工作的,所以我在默认设置下尝试了 Web 实现——还不错。它似乎确实在其中提出了一些“幻像”功能,但总的来说它看起来更容易处理。

替代文字 http://img356.imageshack.us/img356/5/ml00055edgedetectionwp7.png

于 2008-10-22T06:04:08.540 回答
2

尝试一些对比度增强(例如墨西哥帽子),然后进行一些高级增强。我们在使用 Gabor 滤波器技术改进树干年代学的树干 CT 图像时取得了良好的效果。我们使用了 gabor 过滤器,因为它们广泛用于指纹匹配系统,而且我们的图像有些相似。之后你所要做的就是一些(我建议本地自适应)阈值,你得到了你的二进制图像。

于 2008-10-22T06:43:27.663 回答
1

首先,我将对比度增加到 100% 以获得纯黑白图像(不是灰度)。

于 2008-10-22T05:53:30.103 回答
1

有许多类型的算法可以对指纹进行分割。其中一个适用于传感器(您的情况)的方法是基于图像中每个像素的均值方差。以下是算法的步骤,您可以在此处找到:

指纹分割:各种技术的研究和基于方差的方法的参数研究

1.加载大小为 R x C 像素的图像。这里指纹里面的内容无所谓,所以我覆盖一下。您可以看到指纹周围的噪点(小点),这是从传感器拍摄的高质量图像,可能您的图像质量较差且背景噪点较多。指纹 R x C 大小(以像素为单位)

2.我没有像论文中那样对图像进行归一化。因此,下一步是定义大小为w x w的像素块,并将图像划分为非重叠块。

3.对于每个像素移动块并计算均值和方差。将每个方差保存在矩阵中以供进一步比较。你将不得不威胁边界。 wxw的像素块

4.定义一个阈值。在 a w = 15的论文中,阈值是T = 210

5.对于每个方差与阈值比较,如果较小则为背景,否则为指纹本身。

完成所有这些步骤后,您将获得背景噪点较少的图像。类似于这个:分割图像

这是论文中的算法:论文算法

对于其他算法,请参阅:

一种改进的基于均值和方差的指纹分割算法

使用新的改进的基于梯度的技术改进指纹图像分割

于 2015-07-10T17:13:53.787 回答