Math 在点云中查找线

Math 在点云中查找线,math,data-analysis,Math,Data Analysis,我有一系列的要点。我知道这些点代表了我页面中的许多行 我怎样才能找到它们?我需要找到点云之间的间距吗 谢谢 乔纳森也许这就是你要找的?还是一个 [编辑] 因为问题是识别二维坐标列表中的直线,所以我会这样做 线性回归只能用于对一组点进行最佳线性调整,而不能检测多条直线。也许可以使用hough粗略地得到这些线,检查是否有许多点在这些线上对齐。看看剩下的几点。它们必须属于同一行吗 在我看来,使用累加器来确定直线通常是一个很好的解决方案,但是如果你的点遵循一些关系,试着使累加器适应它,使它更适合 问题的

我有一系列的要点。我知道这些点代表了我页面中的许多行

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

谢谢 乔纳森

也许这就是你要找的?还是一个

[编辑] 因为问题是识别二维坐标列表中的直线,所以我会这样做

线性回归只能用于对一组点进行最佳线性调整,而不能检测多条直线。也许可以使用hough粗略地得到这些线,检查是否有许多点在这些线上对齐。看看剩下的几点。它们必须属于同一行吗

在我看来,使用累加器来确定直线通常是一个很好的解决方案,但是如果你的点遵循一些关系,试着使累加器适应它,使它更适合

问题的定义不是那么具体,很难确切地说出如何进行。对我来说,使用累加器解决此类问题似乎是一个必须保留的基础


至少这个问题很有趣

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

  • 检查所有点到点线,并将其转换为包含以下内容的结构:

    a) y形截距

    b) 斜坡

    c) 下界

    d) 上界

  • 按y截距和斜率排序

  • 现在您知道,只有当两条直线具有相同的y截距和相同的坡度时,它们才能重叠

  • 对于具有相同y截距和坡度的每组直线,检查x边界是否重叠。如果他们有,那么你没有单独的线,你有一条线超过2点

  • 作为特殊情况处理垂直线


  • 在过去,我必须检测图片中的路标(包含三角形和圆形等规则形状),效果非常好。你的点阵列不是图像,是吗?我的意思是,这是一组/列表的二维点坐标或图片?不,对不起。我将尝试制定如果我必须在回应中做这项工作,我将如何进行,因为还有更多的地方。我认为这是一个很好的Hough变换的例子。如果你缺线,你有没有玩过?我建议你看看forge.NET,它是用C#编写的,是一个出色的图像处理库(包含一个Hough变换实现),问jdehaan:除了累加器,你是什么意思?hough变换?累加器是添加变换结果的地方