我已经将OpenCV提供的Hough变换算法应用于图像,现在我有一个行数组,每行包含startPoint
和endPoint
。我看到我有多条线可以合并为单行(基于它们的斜率/距离)。
如何合并多条具有相同斜率的线?
答案 0 :(得分:2)
建议相似性得分来比较两个线段: - 加入线段的中段,给你一条直线; - 将线段投影到此线上; - 用沿线的横坐标表示四个投影端点。
设计得分函数 - 当两个段重叠时为0; - 当间隙段与其他线段相交时为0; - 当角度差趋于0时增加(可以是差值的正弦的绝对值); - 当投影端点之间的间隙与长度之和的比率趋于0时,增加。
使用这样的相似性得分,您可以合并细分,例如使用贪婪的过程。