【问题标题】:How to Locate Alignment Marks in an Image如何在图像中定位对齐标记
【发布时间】:2012-04-06 06:37:10
【问题描述】:

我正在设计一个系统,该系统将以标准化形式扫描图像(例如,TBitmap)。我想识别这些页面上的对齐标记,并使用这些裁剪标记的位置将页面旋转到正确的方向(因此顶部实际上向上)并将图像裁剪到对齐标记的位置。

我需要定位的典型标记的示例图像是:


(来源:tpub.com

有哪些技术可以评估从扫描仪获得的图像以定位图像中的各种标记?我需要定位多个标记及其中心点位置。

【问题讨论】:

  • 我知道包括LEADTools在内的许多成像sdk都内置了这个。我自己不知道如何实现它,但我想我会做一个水平线检测算法(x度以内)和垂直线检测算法,然后检查所有可能的 + 点是否为 90% 的连续圆。 leadtools.com/help/leadtools/v15/main/api/dllsteps/…
  • 嗯,我不是专家,但这不是裁切标记,它是打印机在进行 4 色打印时使用的对齐标记。裁剪标记是简单的直线。
  • Warren P:感谢您提供的链接和建议的方法。如果需要的话,我对商业图书馆持开放态度。我也有权更改使用的符号,因此 LeadTools 产品可能是一个可行的解决方案。
  • MJ2008:公平点,我的术语可能不妥。我真正需要的是能够识别某种类型的标记,以便我可以裁剪它。我当然愿意称它为对齐标记。虽然至少出于我的目的,我想它也是一个裁剪标记。
  • 我怀疑标记的大小并不总是相等,但您可能想从使用 ScanLine 的 this Dutch post 获得一些灵感,相当有效。

标签: delphi image-processing graphics computer-vision crop


【解决方案1】:

对于上面的标记,您可以将Hough transform 用于圆和线,然后检查是否有任何交叉线位于任何圆的中心,那么它就是您的标记。我不确定 delphi,但霍夫变换算法是众所周知的,并在很多库中实现。

【讨论】:

    【解决方案2】:

    我发现这个 法语 Colin BOUVRY Colin BOUVRY 处理识别蚀刻在玻璃上的字符和符号

    如果你不习惯法语,你不必担心:文档底部列出了一堆有价值的 Delphi 源代码,相信我!

    谢谢。

    【讨论】:

      【解决方案3】:

      只是集思广益一些可能的方法。

      模板匹配

      一种蛮力方法是拥有一个注册标记应该是什么样子的位图图像。然后,对于图像中与模板位图具有相同宽度和高度的每个可能的矩形,您将图像像素与模板像素进行比较。如果大部分对应的像素都匹配,您可能已经找到了一个注册标记。这是非常计算密集型的,因为您必须扫描所有可能的位置、旋转、比例因子等。您可以通过利用您所知道的东西来减少它。例如,您的注册标记是对称的,因此您不需要检查所有可能的旋转。也许您知道标记的确切大小,因此可以避免迭代不同的比例因子。最后,您可能知道注册标记应该靠近角落,因此可以跳过图像中间的大部分区域。

      有趣的点

      找到一种方法来识别图像中的“有趣点”。例如,可以通过使用小内核进行卷积来找到似乎位于交叉点中心的点,该内核会增强在基本方向上具有匹配像素的像素,然后对结果进行阈值处理。这给出了一个似乎是交叉点的像素列表(可能有一些噪音)。您可以在此坐标子集中搜索一个“星座”,该“星座”看起来像您的注册标记中的五个交点。您可能仍需要应用模板匹配来查找最可能的位置,但这会大大减少您必须尝试的位置、旋转和比例因子的数量。

      特征检测

      有用于线检测、圆检测等的算法。您可以运行一堆这些算法,然后在一个圆内寻找两个相交线段的组合。这可能是最稳健的方式,但也可能是最难工作的方式。

      如果图像一开始就不是很干净,一些预处理步骤(例如运行边缘检测器、阈值或膨胀和腐蚀过滤器)也可能会有所帮助。

      【讨论】:

      • 如果裁剪/对齐标记可以被视为/处理为一个字符,如果它还不是正确的,为什么不使用 OCR 呢?它只是掠过我的脑海。
      • menjaraz:我也考虑过使用 OCR。但是,我以前从未使用过它。是否可以“训练” OCR 工具来学习新字符? OCR 是否有可能返回中心点?或者,如果使用“T”符号,OCR 是否可以返回“T”中两条线的交点?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 2012-06-29
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      相关资源
      最近更新 更多