给定两个矩形,我们知道四个角的位置、宽度、高度、角度。 如何计算这两个矩形的重叠率? 你能帮帮我吗?
最佳答案
一个方便的方法是通过 Sutherland-Hodgman多边形裁剪算法。它的工作原理是用另一个多边形的四条支撑线(半平面)裁剪其中一个多边形。最后你得到相交多边形(最差的是八边形)并通过 polygon area 找到它的面积公式。
您可以通过围绕原点反向旋转多边形使其中一个成为轴平行来使剪裁更容易。这不会改变区域。
请注意,这种方法可以很容易地推广到两个一般的凸多边形,采用 O(N.M) 操作。 G.T. Toussaint 使用旋转卡尺原理将工作量减少到 O(N+M),而 B. Chazelle 和 D. P. Dobkin 表明可以在 O(Log(N+M)) 操作中检测到非空交叉点。这表明 S-H 裁剪方法可能还有一点改进空间,即使 N=M=4 是一个小问题。
关于opencv - 如何计算两个旋转矩形的重叠率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26460514/