OpenCV之RotatedRect类、minAreaRect函数详解

一、RotatedRect类

RotatedRect该类表示平面上的旋转矩形,该类对象有三个重要属性:矩形中心点(质心),边长(长和宽),旋转角度。三种构造函数和三种成员操作函数,RotatedRect类定义如下:

class CV_EXPORTS RotatedRect 
{ 
public: 
//构造函数 
RotatedRect(); 
RotatedRect(const Point2f& center, const Size2f& size, float angle); 
RotatedRect(const CvBox2D& box); 

//!返回矩形的4个顶点 
void points(Point2f pts[]) const; 
//返回包含旋转矩形的最小矩形 
Rect boundingRect() const; 
//!转换到旧式的cvbox2d结构 
operator CvBox2D() const; 

Point2f center; //矩形的质心 
Size2f size; //矩形的边长 
float angle; //旋转角度,当角度为0、90、180、270等时,矩形就成了一个直立的矩形 
};

二、minAreaRect函数

函数定义如下:

CV_EXPORTS_W RotatedRect minAreaRect( InputArray points );//返回类型为RotatedRect对象,参数为vector>点集,作用为计算包围点集的最小旋转矩阵

三、程序示例

mat input=img.clone()//img图像为预处理后的二值化图像
vector > contours;
vector hierarchy;//存储查找到的第i个轮廓的后[i][0]、前[i][1]、父[i][2]、子轮廓[i][3]
  findContours(input, contours, hierarchy, RETR_CCOMP, CHAIN_APPROX_SIMPLE);
RotatedRect r= minAreaRect(contours[i]);



你可能感兴趣的:(OpenCV)