如何从两个cv :: Point2f创建cv :: RotatedRect?

Bap*_*cht 2 c++ opencv image-processing

我有两个cv :: Point2f点,代表一个矩形的左上角和右下角.

OpenCV中有一种简单的方法可以cv::RotatedRect从它们创建吗?

Яoi*_*ois 5

两个角点(如cv :: Rect)中没有RotatedRect构造函数,因为我们需要知道旋转角度.

如果我们假设这是一个"直"矩形,我们可以做类似的事情:

Point a(0,0);   // corner point A
Point b(10,10); // corner point B
float angle = 0.f;


RotatedRect rr(0.5*(a+b), // center 
               Size2f((float)fabs(a.x-b.x),fabs(a.y-b.y)), // size
               angle);
Run Code Online (Sandbox Code Playgroud)

如你所见,这并不像cv :: Rect那样"简单".