【问题标题】:Finding center of fingerprints寻找指纹中心
【发布时间】:2011-06-02 07:22:10
【问题描述】:

如果我们假设每个指纹都由同心曲线(椭圆或圆)组成 - 我知道并非每个指纹都是 - 我如何找到中心那些同心曲线?

让我们用这个“理想”的指纹,试着找出它的中心......

我的方法是尝试:

  • 通过图像的列/行查找光谱,并尝试找到使光谱的特定波段最大化的列/行。我认为穿过中心的柱子会具有最规律的幅度变化模式 - 因此,是最容易识别的谐波。
  • 我的第二种方法是尝试通过列和行来计算黑白的变化,并最大化行和列之间的数量。

虽然这些方法适用于一些现存的方法,但通过一些额外的过滤,当指纹“不像这个那样理想”时,它们会失败。你能想到任何不同的方法吗?有标准的方法吗?

编辑 1 我现在真的很喜欢 Zack 的想法,并希望有人能更清楚地说明如何做到这一点......

编辑 2 我希望有人能多解释一下 Zack 的想法。赏金给扎克。

编辑 3 具有曲线中心的指纹近似于指纹外的脊。

【问题讨论】:

    标签: image-processing signal-processing fingerprint biometrics


    【解决方案1】:

    我只是想澄清一下您是否要查找循环/核心?如果我正确假设您所指的那些同心曲线的中心是循环。最简单和理想的方法是创建脊的方向场并找到最高曲率点。这是循环。方向场发散的点是指纹示例中看不到的增量。

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

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

    【讨论】:

      【解决方案2】:

      您可能想要使用类似Hough 的方法。

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

      【讨论】:

      • 我自己考虑过这种方法。谢谢,会考虑的。
      【解决方案3】:

      您正在寻找构成指纹的同心圆的中心。我会将每个山脊识别为一条单独的线。单独来看,确定每条线的半径中心应该相当简单,最小的半径应该是您正在寻找的同心圆的中心。如果我正确地理解了您的需求,那应该可以。尽管它似乎也导致找到另一篇文章中提到的核心。我相信这确实是您正在寻找的。至少作为一个实际问题。它可能不考虑异常值。

      【讨论】:

      • 图片外有“中心”的指纹,我也想找到那些中心;所以这种方法是不够的。
      • 你是如何定义指纹的?至于手指皮肤上的凹凸不平?还是有不同的参照系?我不是在争论您的定义,因为这是由您的需求驱动的问题,但是印刷品的中心怎么可能在印刷品的框架之外呢?定义打印的边界在哪里?还是您没有使用相关指纹的实际“打印”?您能否上传一张显示符合该标准的印刷品的图片?
      • 我想我也在寻找这个问题的实际应用。为了给你一个实用的、有效的答案,似乎需要它。
      • 我不认为将问题放在“实用”的范围内会对任何人思考问题产生任何影响——如果不需要透露目的,我更愿意这样做保持原样。关于曲线中心在指纹之外 - 我真的没有看到这个问题,因为有些指纹的脊线中心确实在指纹之外,甚至可能在包含指纹的图片之外(看例子有问题我已经更新了。)
      • 我只是从实际用途的角度来考虑取消一个想法。更多构成打印的领域区域的实际限制。例如,在上面的示例中,假设它的位置相对于手指是合乎逻辑的,则中心将落在手指的下方,并且可能被关节或其他特征遮挡。在另一个方向上,中心在物理意义上不存在的可能性,但更多的是理论中心,物质,还是曲线指向大方向就足够了?
      【解决方案4】:

      这让我想起了一些美好的回忆 - 早在 1997 年,我就脱离了指纹识别行业。

      您真正需要的是识别指纹的核心,因为指纹的所有识别特征都是从核心测量的。

      如果您确定每个局部区域中线条的主要方向,您会发现核心位于这些方向变化最快的点。

      【讨论】:

      • 打扰一下,你能告诉我任何特定的数据结构或算法可以帮助我做到这一点吗?
      • 经过思考和谷歌搜索后,我发现我不是寻找指纹的核心,而是寻找“同心曲线(脊)的中心” -它们之间有区别...例如同心曲线的中心也可以在图片之外,而核心则不能。
      • 我很想知道这个应用程序是什么。通常,中心用于查找离中心最远的细节点。当特定模板格式的细节过多时,这些最远的细节点将被删除。
      • 确定指纹线条方向的一种方法可能是测量穿过本地窗口的线条的变化。例如,使用 7x7 本地窗口,并检查穿过窗口中间的像素线。使用足够大的窗口,可以检查许多角度,但即使是小窗口,也应该对垂直、水平和两个对角线产生有用的测量。计算每个像素与其相邻像素的差值的绝对值之和。得分最高的方向是指向/离开中心(大约)。
      【解决方案5】:

      在我的脑海中,我不知道这会有多难:将指纹线视为标量场的等势线,并找到最大化/最小化其gradient 的点。

      【讨论】:

      • 嗯...谢谢,它可能会比 Meke 的建议产生更好的结果。
      • 不客气。不过,请注意轻微的修正,我混淆了向量微分算子。
      • +1,因为我的第一个想法也是尝试从一些线计算梯度方向......顺便说一句,即使在这个“理想”指纹中,“中心”也不是一个点,而是一条线部分。但也许线段的中点将是指纹的中心......
      • 拜托,你能给我更多关于这个的见解吗?我想我应该“整合一个区域的差异”?
      • 对不起,我只有我写的。
      【解决方案6】:

      这是我要往下走的路。

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

      【讨论】:

        【解决方案7】:

        首先 - 这本身就是一个金钱行业。

        但是,我知道的最好方法是:

        您首先提取记录从一个量化方向到另一个量化方向的过渡的轨道。也就是黑线的弯曲。

        创建轨道后,您开始寻找轨道方向转换最高的点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-25
          • 1970-01-01
          相关资源
          最近更新 更多