寻找指纹中心

5
如果我们假设每个指纹都由同心曲线(椭圆或圆)组成 - 我知道并非每个指纹都是如此 - 那么我该如何找到这些同心曲线的中心?让我们以这个“理想”的指纹为例,试着找出它的中心... 我的方法是尝试:通过图像的列/行找到频谱,并尝试找到最大化特定频段的列/行。我认为穿过中心的列会有最规则的振幅变化模式 - 因此,具有最明显的谐波。我的第二种方法是尝试通过列和行计算黑白变化次数,并在行和列中最大化该数量。虽然这些方法在一定程度上是有效的,但需要进行一些额外的过滤,当指纹“不像这个理想指纹”时它们就会失败。你能想到任何不同的方法吗?有标准的方法吗?编辑1:我现在真的很喜欢Zack的想法,并希望有人能更清楚地说明如何做... 编辑2:我希望有人能更详细地阐述Zack的想法。赏金给了Zack。指纹的中心近似于指纹外缘的曲线。
7个回答

2

我的第一反应是:把指纹线条看作标量场的等势线,并找到能够最大/最小化其梯度的点。我不确定这有多难。


嗯...谢谢,这可能会比Meke的建议产生更好的结果。 - plesiv
不用谢。不过请注意,我混淆了向量微分算子。 - zwol
+1,因为我的第一个想法也是尝试从一些线条中计算梯度方向... 顺便说一句,即使在这个“理想”的指纹中,“中心”也不是一个点,而是一个线段。但也许线段的中点将成为指纹的中心... - Agnius Vasiliauskas
请问,您是否能对这个问题给我更多的见解?我认为我应该“在一个区域内积分微分”吗? - plesiv
抱歉,我只有我写的内容。 - zwol

2

以下是我会采取的路径。

  1. 找到弧线/直线
  2. 使用三角函数,确定每个弧线最好代表的圆的中心
  3. 将各个中心的平均值作为手的中心

2

这让我想起了一些愉快的回忆 - 我在1997年退出了指纹识别业务。

实际上你要找的是指纹的核心,因为所有指纹的识别特征都是从核心来测量的。

如果你确定每个本地化区域线条的主导方向,你会发现核心点是这些方向变化最快的地方。


请问,有没有什么特定的数据结构或算法可以帮助我完成这个任务? - plesiv
经过思考和谷歌搜索,我发现我不是在寻找指纹的核心,而是在寻找“同心曲线(脊)的中心” - 这就是它们之间的区别...例如,同心曲线的中心也可以在图片外部,而核心则不行。 - plesiv
我很想知道这个应用程序是什么。通常,中心点用于查找距离中心最远的细节点。当有太多细节点适用于特定的模板格式时,将删除这些最远的细节点。 - selwyn
确定指纹线条方向的一种方法可能是通过测量沿着局部窗口运行的线路的变化来实现。例如,使用一个7x7的局部窗口,并检查穿过窗口中心的像素线。使用足够大的窗口,可以检查许多角度,但即使是小窗口也应该产生有用的垂直、水平和两个对角线的测量值。计算每个像素与其邻居之间差的绝对值之和。得分最高的方向指向/从中心(大约)。 - Predictor

1
首先 - 这本身就是一个赚钱的行业。
然而,我知道的最好方法是:
你可以从提取记录从一个量化方向到另一个方向的转换的轨迹开始。也就是说,黑线的弯曲。
创建了轨迹之后,你可以开始寻找在轨迹中具有最高方向转换的点。

1

你可能想使用类似于Hough的方法。

  1. 使用“投票”图像,累积中心候选者的票数。
  2. 对于图像中每个边缘中的每个像素,在一个小窗口中计算局部梯度-这将给出垂直于边缘的向量。
  3. 对于每个这样的向量,沿其长度增加投票计数(最多一定距离)。
  4. 具有最高投票数的像素很可能是您想要的中心。

我自己也考虑过那种方法。谢谢,我会再想想的。 - plesiv

0

您正在寻找组成指纹的同心圆的中心。我会将每个脊线视为单独的线条。分别查看应该相对容易确定每条线上的半径中心,而最小的半径应该是您要寻找的同心圆的中心。如果我正确理解了您的需求,那就可以了。虽然这似乎也会导致找到另一篇帖子中提到的核心。我认为这确实是您要寻找的东西。至少在实际问题上是如此。它可能无法解释异常值。


有些指纹的“中心”在图片之外,我想要找到那些中心;因此这种方法是不够的。 - plesiv
你是如何定义指纹的?是指手指皮肤上的脊和谷的总和吗?还是有其他的参考框架?我并不会质疑你的定义,因为这是你根据自己的需求提出的问题,但是指纹的中心怎么可能在指纹的框架之外呢?什么是定义指纹的边界?或者你并没有使用实际的指纹“印迹”?你能上传一个符合这些标准的指纹图形吗? - zenbike
我想我也在寻找这个问题的实际应用。似乎需要这个才能给你一个实际、可行的答案。 - zenbike
我认为将问题放在“实际”范围内并不会对任何人思考问题有所影响——如果没有必要透露目的,我宁愿让它保持原样。关于曲线中心在指纹外部的问题——我真的看不出这有什么问题,因为有些指纹确实具有其脊线中心在指纹之外甚至可能在包含指纹的图片之外的情况(请参见我更新的问题中的示例)。 - plesiv
我只考虑实际使用方面来否定一个想法。更多的是印刷物所组成领域的实际限制。例如,在上面的例子中,假设它在与手指的关系上是合理的位置,那么中心会落在手指的下部,并且可能会被关节或其他特征遮挡。另一方面,中心可能在物理意义上不存在,而更像是一个理论中心,这是否重要,还是曲线大致指向正确方向就足够了? - zenbike

0

我只是想澄清一下,您是在尝试找到循环/核心吗?如果我猜得对的话,您所指的同心曲线的中心就是循环。最简单和理想的方法是创建脊线的方向场并找到最高曲率点。这就是循环。方向场分歧的点是Delta,在指纹示例中看不到。

您还可以将方向场分组为区域。所有区域的交点是循环和Delta。 下面的论文描述了如何检测循环和Delta。 http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=7139102

编辑3指纹,其中心近似于指纹外的脊线。这个指纹是一个普通的拱形。它没有循环,但如果您按照论文作者的工作,他们提供了解决这些情况的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接