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