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