以下是一些可能对您有帮助的想法。
我们可以估计一个点是在边缘上还是在角上,如下所示:
Covariance = ((0, 0), (0, 0))
d = point - centroid
Covariance += outer_product(d, d)
提取所有角点并进行分割。选择条目最多的四个段。这些线段的质心是矩形角的候选点。
计算相对两侧的归一化方向向量并计算其平均值。计算另外两个相对边的平均值。这些是平行四边形的方向向量。如果您想要一个矩形,请计算其中一个方向的垂直向量,并计算另一个方向向量的平均值。那么矩形的方向是平均向量和垂直向量。
为了计算角点,您可以将候选对象投影到其方向上并移动它们,使它们形成矩形的角点。