我将从指纹图像中提取特征。到目前为止,我已经尝试了许多方法来简单地增强图像并使其骨架化。方法我试过; 局部直方图均衡(11x11邻域)+二值化与自适应阈值+形态细化(与Erode + Dilate + Substract所谓的白色顶帽)。我使用内置函数附带OpenCV,Scipy和Scikit-Image。工作得不好。 我尝试了一种不同的方法,局部直方图+维纳滤波+自适应阈值二值化+ Skeletonize。 结果是变化的,有些是完美的,有些是背景噪音和数十亿虚假连接可怕。我还尝试在采取任何行动之前应用高斯或中值模糊。 例如,图1是我用Wiener过滤得到的好结果之一。除了边界效应。在指纹的边界上,似乎存在数百万个错误连接,并且算法倾向于在指纹周围绘制边界。但我仍然认为这是一个好结果,但也需要建议来克服这种边界效应。 另一方面,如你所见,图2是一个可怕的部分。所有的位都是按位,没有背景和山谷黑色和山脊白色。它仍然是相同的算法。有关OpenCV或/和Python的任何库中的指纹图像增强的建议吗? 注意:根据请求添加原始图像。
答案 0 :(得分:2)
您应该使用方向过滤器,例如Gabor过滤器。
在Google上搜索(过滤器,无效指纹enhacemeNt)
它是如何工作的: 1)创建一组Gabor过滤器(不同的方向,不同的尺度......) 2)使用整体中的每个滤波器卷积图像 3)从图像中获取最大响应(对于每个像素,选择得分最高的过滤器)
现在您将知道每个像素的最佳方向和滤镜尺寸(线段+方向),同时您将丢弃噪声数据。
是的,它会很慢,但结果非常好。
看看: http://www.cse.iitk.ac.in/users/biometrics/pages/111.JPG