RotatedRect cv::minAreaRect ( InputArray points )
小demo
cv::Mat inputMat(
cvPoionts2d.size()/*std::vector<cv::Point2f>*/,
2,
cv::DataType<cv::Point2f::value_type>::type,
cvPoionts2d.data()
);
cv::Point2f ans[4];
cv::minAreaRect(inputMat)
.points(ans);
看了一下opencv的源代码实现,基本步骤是先求凸包,然后用旋转卡盘算法求解的
这里用到了2个知识,证明比较啰嗦,直接说结论
1.最小外包矩形的边一定经过凸包的顶点
2.最小外包矩形至少有一个边与凸包的边重合