【问题标题】:Find Lines in a cloud of points在点云中查找线
【发布时间】:2010-12-02 18:39:28
【问题描述】:

我有一个点数组。我知道这些点代表我页面中的许多行。

我怎样才能找到它们?我需要找到点云之间的间距吗?

谢谢 乔纳森

【问题讨论】:

    标签: math data-analysis


    【解决方案1】:

    也许Hough Transform 是您正在寻找的?还是linear regression

    [编辑] 事实证明,问题是识别二维坐标列表中的线,我会这样做。

    线性回归只能用于对一组点进行最佳线性调整,不能检测多条线。也许使用 hough 粗略地获得线条,检查 许多 点是否在这些线条上对齐。看看剩下的点。他们必须属于一个行吗?

    在我看来,总体而言,使用累加器确定线条是一个很好的解决方案,但如果您的观点遵循某些关系,请尝试使累加器适应它以使其更适合。

    问题定义不是那么具体,很难确切地说明如何进行。对这类问题使用蓄能器似乎是我必须保留的基础。

    至少这个问题是有趣的

    【讨论】:

    • 过去我必须检测图片中的路标(其中包含规则形式,如三角形和圆形,...)它工作得很好。你的点数组不是图像,是吗?我的意思是它是 2D 点坐标或图片的集合/列表?
    • 不,对不起。如果我必须在响应中完成这项工作,我将尝试制定如何进行,因为还有更多位置。
    • 我认为这是霍夫变换的绝佳案例。如果您缺少线路,您是否玩过您的 bin 半径?我建议你看看 AForge.NET code.google.com/p/aforge 它是用 C# 编写的,是一个出色的图像处理库(包含 Hough 变换实现)
    • 对 jdehaan 的问题:除了累加器之外,您是什么意思?霍夫变换?
    • 累加器是您添加转换结果的地方
    【解决方案2】:

    这与考虑两点之间的所有重叠线相同。

    1. 遍历所有点对点线并将其转换为包含以下内容的结构:

      a) y 截距

      b) 坡度

      c) 下 x 界

      d) 上 x 界

    2. 按 y 截距和斜率排序。

    现在您知道,只有 2 条线具有相同的 y 截距和相同的斜率,它们才能重叠。

    1. 对于每组具有相同 y 截距和斜率的线,检查 x 边界是否重叠。如果他们这样做,那么您没有单独的线,您有 1 条线超过 2 点。

    2. 将垂直线作为特殊情况处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 2022-10-24
      相关资源
      最近更新 更多