2013-12-08 119 views
0

"Figure 1"指纹图像增强

"Figure 2"

我打算让从指纹图像特征提取。到目前为止,我尝试了很多方法来简单地增强图像并对其进行缩略化。我试过的方法; 局部直方图均衡化(11x11邻域)+自适应阈值化+形态学细化的二值化(使用Erode + Dilate + Substract所谓的白色顶帽)。我使用了OpenCV,Scipy和Scikit-Image的内置函数。工作不太好。 我尝试了一种不同的方法,局部直方图+维纳滤波+自适应阈值二值化+骨架化。 结果不尽相同,有些非常好,有些因背景噪音和数十亿的错误连接而变得糟糕透顶。我还尝试在采取任何操作之前应用高斯或中值模糊。例如图1是维纳滤波的一个很好的例子。除边界效应外。在指纹的边界上,似乎有数百万的错误连接,并且算法倾向于在指纹周围绘制边界。但是,我仍然认为这是一个好的结果,但也需要建议来克服这种边界效应。另一方面,如你所见,图2是一个可怕的作品。所有的比特都是按比例没有背景和山谷黑色和山脊白色。它仍然是相同的算法。任何关于在OpenCV或/和任何Python库中指纹图像增强的建议? 注意:应要求添加了原始图像。

"Figure 1 not processed"

"Figure 2 not processed"

+1

你能证明你的两个1和图2 RAW图像? – lennon310

+0

添加了原始图像。感谢支持@ lennon310 –

+0

您是否考虑了局部方向估计和Gabor滤波器?如果没有,请在Google学者上写上'gabor指纹'... – Vaaksiainen

回答

2

您应该使用方向滤波器e.g Gabor滤波器。

搜索它在谷歌(过滤ensamble,指纹enhacemeNt)

它的工作原理: 1)创建Gabor滤波器(不同方向,不同尺度的合奏......) 2)卷积图像,每个过滤器在集合 3)获取图像的最大响应(对于每个像素选择过滤器,得到最高分数)

现在您将知道什么方向和哪种滤镜尺寸适合每个像素(线段+方向)和同时你会丢弃嘈杂的数据。

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

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

+1

感谢您的回答。我创建了方向场并将其用于离散傅立叶变换。它对我来说工作得很好。由于它正在工作,我将离开Gabor。但是在完成我的项目后,我会试用Gabor和Wiener(或Weiner)滤镜。 –