opencv – 处理cv :: RotatedRect的宽度和高度

我需要从它的4个角定义一个旋转的矩形.旋转的矩形由中心点,尺寸对(宽度,高度)和角度定义.

如何确定哪个尺寸是高度,哪个是宽度?

宽度不是最水平边缘的长度,是吗?例如.如果角度大于90°,​​它是否交换?

最佳答案 高度应该是最大的一侧,宽度是另一个,角度是顺时针方向的旋转角度(以度为单位).

否则,您可以获得一个等高的矩形,其高度和宽度交换,旋转90度.

您可以使用minAreaRect查找RotatedRect:

vector<Point> pts = {pt1, pt2, pt3, pt4}

RotatedRect box = minAreaRect(pts);

// Be sure that largest side is the height
if (box.size.width > box.size.height)
{
    swap(box.size.width, box.size.height);
    box.angle += 90.f;
}
点赞