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<vector<Point>>点集,作用为计算包围点集的最小旋转矩阵

三、程序示例

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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值