寻找指纹中心
如果我们假设每个指纹都是由同心曲线(椭圆或圆形)组成 - 而且我知道并非每个指纹都是由同心曲线组成 - 我如何找到这些同心曲线的中心?
让我们采用这个“理想”指纹并尝试找出它的中心...
我的方法我们要尝试:
- 通过图像的列/行查找光谱,并尝试找到使光谱的特定波段最大化的列/行。我认为穿过中心的柱子将具有最规则的振幅变化模式 - 因此,最容易识别的谐波。
- 我的第二种方法是尝试通过列和行来计算黑白的变化,并最大化行和列之间的数量。
虽然这些方法在某种程度上有效,但通过一些额外的过滤,当指纹“不像这个那样理想”时,它们就会失败。你能想到任何不同的方法吗?有标准的方法吗?
编辑 1 我现在真的很喜欢 Zack 的想法,并且希望有人能更清楚地说明如何做到这一点...
编辑 2 我希望有人能详细解释一下扎克的想法有点多。给扎克的赏金。
编辑 3 指纹的曲线中心近似于指纹外部的脊线。
If we suppose that every fingerprint is made of concentric curves (ellipses or circles) - and I'm aware of the fact that not every fingerprint is - how can I find center of those concentric curves?
Let's take this "ideal" fingerprint and try to find out its center ...
My approaches were to try:
- Find the spectrum through columns/rows of the image and try to find columns/rows that maximize particular band of the spectrum. I thought that column going through the center would have most regular pattern of changing amplitudes - therefore, most recognizible harmonic.
- My second approach was to try to count the changes of black-and-white also through the columns and rows, and to maximize that amount among rows and columns also.
While these methods work to the some extant, with some additional filtering, they fail, when fingerprint is "not ideal as this one is". Can you think of any different approach? Are there standard ways to do it?
Edit 1 I really like Zack's idea now, and would like for someone to make it a bit more clear how to do it...
Edit 2 I wished someone had expounded on Zack's idea a bit more. Bounty given to Zack.
Edit 3 Fingerprint with center of curves that approximate ridges outside of fingerprint.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我完全不知道这有多难:将指纹线视为标量场的等势线,并找到最大化/最小化其 渐变。
Off the top of my head, and I don't have any idea how hard this would be: treat the fingerprint lines as equipotential lines of a scalar field and find the points that maximize/minimize its gradient.
这给我带来了一些美好的回忆——早在1997年我就脱离了指纹识别行业。
你真正要求的是识别指纹的核心,因为指纹的所有识别特征都是从核心测量的。
如果您确定每个局部区域中线条的主导方向,您会发现核心位于这些方向变化最快的点。
This brings back some pleasant memories for me - I disassociated myself from the fingerprinting business back in 1997.
What you're really asking for is to identify the core of the fingerprint, since all identifying characteristics of a fingerprint are measured from the core.
If you identify the dominant direction of the lines in each localized area, you'll find that the core is at the point where these directions are changing most rapidly.
这是我要走的路。
Here is the path I would head down,.
首先——这本身就是一个金钱行业。
然而,我知道的最好方法是:
首先提取记录从一个量化方向到另一个量化方向的过渡的轨道。即黑线的弯曲。
创建轨迹后,您开始寻找轨迹方向过渡最高的点。
First of all - This is a money industry in itself.
However, the best way I'm aware of:
You begin with extracting a track that records the transition from one quantized direction to another. That is, the bending of the black lines.
After having created your track, you start looking for the point with the highest transition of direction from the track.
您可能想要使用类似 Hough 的方法。
You might want to use the Hough-like approach.
您正在寻找构成指纹的同心圆的中心。我会将每个山脊识别为一条单独的线。单独来看,识别每条线的半径中心应该相当简单,并且最小半径应该是您正在寻找的同心圆的中心。如果我正确理解你的愿望,那就应该可以。尽管它似乎也导致找到另一篇文章中提到的核心。我相信这确实是您正在寻找的。至少作为一个实际问题。它可能无法解释异常值。
You are looking for the center of the concentric circles which make up the fingerprint. I would identify each ridge as an individual line. Viewed separately it should be reasonably simple to identify the center of the radius in each line, and the smallest radius should be the center of the concentric circles that you are looking for. If I'm understanding your desires correctly, that should do it. Although it also appears to result in finding the core that was mentioned in another post. I believe that really is what you are looking for. At least as a practical matter. It may not account for outliers.
我只是想澄清一下您是否试图找到环路/核心?如果我正确地假设您所指的那些同心曲线的中心是环路。最简单且理想的方法是创建脊的方向场并找到最高曲率点。这就是循环。方向场发散的点是指纹示例中看不到的增量。
您还可以将方向字段分组为区域。所有区域的交集是环路和三角洲。
下面的论文描述了如何检测循环和增量。
http://ieeexplore.ieee.org/xpl/articleDetails.jsp ?reload=true&arnumber=7139102
编辑 3 个指纹,其曲线中心近似于指纹外部的脊线。该指纹是一个简单的拱形。它没有循环,但如果您遵循论文中作者的作品,他们会提供解决这些情况的解决方案。
I just want to clarify if you are trying to find the loop/core?If I am assuming correctly the center of those concentric curves you are referring to is the loop. The easiest and ideal way to do this is to create orientation fields of the ridges and find the highest curvature point. This is the loop. The point where orientation fields diverge is the delta which is not seen in the fingerprint examples.
You can also group the orientation fields into regions. The intersection of all regions is the loop and delta.
The paper below describes how to detect the loop and delta.
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=7139102
Edit 3 Fingerprint with center of curves that approximate ridges outside of fingerprint. This fingerprint is a plain arch. It has no loop but if you follow the works by the authors in the paper, they provide a solution to solve these cases.