我有一系列积分。我知道这些点在我的页面中代表了许多行。
我怎样才能找到它们?我是否需要找到点云之间的间距?
由于 乔纳森
答案 0 :(得分:5)
也许Hough Transform正是您要找的?或linear regression?
[编辑] 事实证明问题是识别二维坐标列表中的行,我将以这种方式进行。
线性回归只能用于对一组点进行最佳线性调整,而不能检测多行。也许使用霍夫粗略地得到线条,检查许多点是否在这些线上对齐。看看剩下的点。他们必须属于一条线吗?
使用累加器来确定线条在我看来通常是一个很好的解决方案但是如果你的点跟随某些关系,请尝试使累加器适应它以使其更适合。
问题定义不是那么具体,很难准确说明如何继续。对于这种问题,使用累加器似乎是我必须保留的基础。
至少问题是有趣!
答案 1 :(得分:1)
这与考虑2点之间的所有重叠线是一样的。
遍历所有点对点线并将其转换为包含以下内容的结构:
a)y拦截
b)斜率
c)较低的x-bound
d)上限x-bound
按y截距和斜率排序。
现在您知道只有当两条线具有相同的y截距和相同的斜率时,它们才能重叠。
对于具有相同y截距和斜率的每组线,检查x边界是否重叠。如果他们这样做,那么你没有单独的行,你有1行超过2点。
处理垂直线作为特例。