我试图通过一组点来获得四边形的角点。
第二张照片有点极端,但我的一套点的“质量”位于第一张照片和第二张照片之间。
首先,我想到制作超过1-360°和长度的直方图,以下两点描述。四个最高峰将描述每条线的长度。但是由于iam失去了订单点数,只知道度数和长度或一条线,并且不知道一条线属于哪个位置。
然后我考虑合并两个以下的行,如果他们的程度大致相同,但我不知道如何处理这里的噪音或预测角落。
有没有人知道处理这个问题或类似问题的算法?
答案 0 :(得分:3)
您可以将此视为群集问题,其中群集“中心”实际上是直线。要计算聚类,您可以使用k-means算法:
为了改进第一步,您可以考虑在角度上绘制直方图,并将每个点最初分配到与最近峰值对应的桶。然后将线条装到四个桶中,然后开始迭代。
您还可以将此视为优化问题:选择4个点以使差异区域(内部的白色区域和四边形外部的黑色区域)尽可能小。通用优化算法可能有效,但为了加快速度,您需要一个合理的算法来计算区域。