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