我想计算旋转的图像大小,图像在矩形内。我有旋转图像的矩形宽度,高度和角度。任何人告诉我 如何计算旋转图像大小?
答案 0 :(得分:0)
所以你有宽度,高度和角度意味着你已经有RotatedRect。
现在使用方法
Rect RotatedRect::boundingRect();
您可以轻松计算旋转矩形的边界框。
有关详细信息,请参阅RotatedRect。
修改强>
根据你的评论,下面是如何找到旋转矩形的宽度和高度的方法。
所以你知道矩形的四个角,让我们说(x1,y1),(x2,y2),(x3,y3),(x4,y4),现在你需要找到旋转后的变换点。给定角度,让它为(xT1,yT1),(xT2,yT2)等......
,其中
xT = x0+(x-x0)*cos(theta)+(y-y0)*sin(theta)
yT = y0-(x-x0)*sin(theta)+(y-y0)*cos(theta)
此处(x0,y0)是您旋转的中心。和theta = angle * CV_PI / 180.0
使用上面计算四个变换点,最后通过找到变换点之间的距离来计算高度和宽度。