指纹图像增强

Posted

技术标签:

【中文标题】指纹图像增强【英文标题】:Fingerprint Image Enhancement 【发布时间】:2013-12-08 16:31:51 【问题描述】:

我将从指纹图像中提取特征。到目前为止,我已经尝试了许多方法来简单地增强图像并将其骨架化。我尝试过的方法; 局部直方图均衡(11x11 邻域)+ 具有自适应阈值的二值化 + 形态细化(使用 Erode+Dilate+Substract 所谓的 White Top Hat)。我使用了 OpenCV、Scipy 和 Scikit-Image 自带的内置函数。没有很好地工作。 我尝试了另一种方法,局部直方图 + 维纳滤波 + 自适应阈值二值化 + 骨架化。 结果各不相同,有些非常好,有些则因背景噪音和数十亿错误连接而很糟糕。我还尝试在采取任何行动之前应用高斯或中值模糊。 例如,图 1 是我使用维纳滤波得到的很好的示例之一。除了边缘效应。在指纹的边界上,似乎有数百万个错误连接,算法倾向于在指纹周围画一个边界。但我仍然接受这是一个很好的结果,但也需要建议来克服这种边界效应。 另一方面,如您所见,图 2 是一个可怕的部分。所有位都只是按位不具有背景和黑色的山谷和白色的山脊。它仍然是相同的算法。在 OpenCV 或/和任何 Python 库中对有什么建议吗? 注意:由于请求添加了原始图像。

【问题讨论】:

你能展示你的 fig.1 和 fig.2 的原始图像吗? 添加了原始图像。感谢支持@lennon310 你考虑过局部方向估计和 Gabor 滤波器吗?如果没有,请在 Google 学者上添加“gabor 指纹”... 【参考方案1】:

您应该使用方向过滤器,例如 Gabor 过滤器。

在 Google 上搜索(过滤器集成、指纹增强)

它是如何工作的: 1)创建一组Gabor滤波器(不同的方向,不同的尺度......) 2) 将图像与集成中的每个滤波器进行卷积 3) 从图像中获取最大响应(为每个像素选择得分最高的过滤器)

现在您将知道最适合每个像素(线段 + 方向)的方向和过滤器尺寸,同时您将丢弃噪声数据。

是的,它会很慢,但结果非常好。

看看: http://www.cse.iitk.ac.in/users/biometrics/pages/111.JPG

【讨论】:

感谢您的回答。我创建了方向场并将其用于离散傅里叶变换。这对我来说效果很好。由于它有效,我将忽略 Gabor。但在我完成我的项目后,我将试用 Gabor 和 Wiener(或 Weiner)过滤器。

以上是关于指纹图像增强的主要内容,如果未能解决你的问题,请参考以下文章

图像增强---灰度变换

gan如何做图像增强

图像增强基于模糊集的图像增强matlab源码

图像增强之空间域滤波

数字图像处理Matlab实现-图像增强-灰度图像增强

数字图像增强的一般方法