【问题标题】:Very precise line detection, openCV Java非常精确的线检测,openCV Java
【发布时间】:2017-11-06 18:53:45
【问题描述】:

我将首先解释现实世界应用程序中的问题;我有一个指向黑暗表面的相机。进纸器(只是简单的机器,当控制计算机指示它时会吐出页面)将纸张送入相机正在寻找的区域。

使用openCV处理图像,判断feeder是否正确送料。

这意味着我不仅要确定是否存在页面,还要确定是否存在多个页面。有时会送入多页,因为它们粘在一起,在这种情况下,这些页面非常接近,几乎完全对齐,除非您仔细观察,否则它们在视觉上似乎是一页。

我遇到的问题是 Canny 边缘检测与 Hough 变换相结合,无法提供所需的准确度。使用 Canny 在图像中查找纸张的典型示例返回每个页面边缘为多行 (5-15) 的结果。使用查找轮廓确定这是一个矩形。

这些典型示例没有帮助,因为我需要能够检测到另一条线非常靠近页面边缘。

我一直在研究霍夫变换的阈值以及我在 Canny 之前应用了多少模糊,并且已经得到了相当可靠的结果,但问题是我认为现在灵敏度太低了,任何页面在上面的例子中(在彼此之上)将不会被这个系统检测到。

示例:

上面的图片有两个可见页面,一个刚刚从进纸器中出来。页面上有文字。我需要能够识别页面的角度,并且实际上只有一页。

我遇到的问题是我需要足够灵敏的行检测来判断是否有两个页面粘在一起,但我还需要不检测页面上文本中的行。

【问题讨论】:

  • 请展示一些图片

标签: java opencv hough-transform opencv3.1 canny-operator


【解决方案1】:

我建议你不要寻找一张纸覆盖另一张纸的微弱线条,而是寻找这个白色区域的整体形状。如果您知道所有这些页面都是 A4 大小 - 您找到白色区域的矩形并检查角度是否正确以及边的比例是否为 2 的平方根。如果两张纸完全对齐 - 您会无论如何都不会检测到它,除非您以某种方式测量纸张的厚度。

有一个角检测过滤器可以帮助您找到矩形 ABCD 的角。然后你只需检查向量 AB 是否垂直于 BC 和 AD 等等。此外,如果在紧凑的白色区域内检测到超过 4 个具有合理阈值的角 - 这是一条消息“有些问题”。

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 2021-04-25
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2017-06-13
    • 2021-06-05
    • 2015-05-25
    • 2023-03-10
    相关资源
    最近更新 更多