【发布时间】:2010-12-02 18:39:28
【问题描述】:
我有一个点数组。我知道这些点代表我页面中的许多行。
我怎样才能找到它们?我需要找到点云之间的间距吗?
谢谢 乔纳森
【问题讨论】:
标签: math data-analysis
我有一个点数组。我知道这些点代表我页面中的许多行。
我怎样才能找到它们?我需要找到点云之间的间距吗?
谢谢 乔纳森
【问题讨论】:
标签: math data-analysis
也许Hough Transform 是您正在寻找的?还是linear regression?
[编辑] 事实证明,问题是识别二维坐标列表中的线,我会这样做。
线性回归只能用于对一组点进行最佳线性调整,不能检测多条线。也许使用 hough 粗略地获得线条,检查 许多 点是否在这些线条上对齐。看看剩下的点。他们必须属于一个行吗?
在我看来,总体而言,使用累加器确定线条是一个很好的解决方案,但如果您的观点遵循某些关系,请尝试使累加器适应它以使其更适合。
问题定义不是那么具体,很难确切地说明如何进行。对这类问题使用蓄能器似乎是我必须保留的基础。
至少这个问题是有趣的!
【讨论】:
这与考虑两点之间的所有重叠线相同。
遍历所有点对点线并将其转换为包含以下内容的结构:
a) y 截距
b) 坡度
c) 下 x 界
d) 上 x 界
按 y 截距和斜率排序。
现在您知道,只有 2 条线具有相同的 y 截距和相同的斜率,它们才能重叠。
对于每组具有相同 y 截距和斜率的线,检查 x 边界是否重叠。如果他们这样做,那么您没有单独的线,您有 1 条线超过 2 点。
将垂直线作为特殊情况处理。
【讨论】: