指纹识别的一个重要方法,就是先确定指纹的中心点,然后再进行局部匹配。然而,想要获取指纹中心点,就需要先画出指纹的方向图。本文,介绍一下,用Mathematica绘制指纹方向图的方法。
工具/原料
1
电脑
2
Mathematica
方法/步骤
1
给定一幅指纹图像a。
2
对图片进行梯度方向滤波处理。b = GradientOrientationFilter[a, 5]
3
求出指纹图像每个点的方向。c = ImageData[b];d = Image@ArcTan[Sin[c], -Cos[c]]
4
随机的在指纹上选择50个点:e = RandomChoice[ ImageValuePositions[MorphologicalPerimeter[Binarize[a, {0, .5}]], 1], 50];凸显出这50个点:Show[a, Graphics[{Red, PointSize[0.01], Point[e]}]]
6
上面的每个箭头都垂直于所在的指纹线。如果这些箭头交汇于某个区域,那么指纹的中心点就在这个区域内部。然而,指纹的中心点,计算机还是难以确定。
注意事项
思考一下,知道了指纹图像的方向图,怎么确定指纹的中心点呢?