【opencv12】cv::Size/cv::Rect/cv::RotatedRect类

1.cv::Size类

在实践中,size类与对应的Point点类(一致类型的)类似,可以互相转换。主要的区别在size类中的两个数据成员叫做 w i d t h width width h e i g h t height height,而在Point点类中的连个数据成员叫做 x x x y y y。size类的三个别名为:cv::Size, cv::Size2i, 和 cv::Size2f。前面两个是相同的用来表示整型size,而最后一个是32位浮点型size。

操作例子
默认构造函数cv::Size sz;cv::Size2i sz;cv::Size2f sz;
带值的构造函数cv::Size2f sz( w, h );
访问函数成员sz.width; sz.height;
compute areasz.area();

与Point点类不同,size类不支持强制转换为固定向量类(cv::Vec)。这意味着size类的应用将会有更多的限制。另一方面,Point点类和固定向量类可以毫无问题地转换为size类。

2.cv::Rect类

Rect矩形类包括Point点类的成员 x x x y y y(表示矩形的左上角)以及size类的成员 w i d t h width width h e i g h t height height(表示矩形的大小)。但是,矩形类不会从Point点类或size类继承,因此通常不会从它们继承操作符。

操作例子
默认构造函数cv::Rect r;
拷贝构造函数cv::Rect r2( r1 );
带值的构造函数cv::Rect( x, y, w, h );
用点类和size类创建cv::Rect( p, sz );
双角创建cv::Rect( p1, p2 );
访问函数成员r.x; r.y; r.width; r.height;
compute arear.area();
提取左上角r.tl();
提取右下角r.br();
point点类p是否在rect类r中r.contains( p );

Rect还支持各种重载运算符,可用于计算两个矩形或一个矩形和另一个对象的各种几何属性。

操作例子
两个矩阵相交的矩阵cv::Rect r3 = r1 & r2;r1 &= r2;
包含矩形r1和r2的最小矩形的面积cv::Rect r3 = r1 | r2;r1 |= r2;
将矩形r平移xcv::Rect rx = r + x;r += x;
将矩形r按大小s进行放大cv::Rect rs = r + s;r += s;
比较矩形r1和r2是否完全相等bool eq = (r1 == r2);
比较矩形r1和r2是否不相等bool ne = (r1 != r2);
3.cv::RotatedRect类

RotatedRect类是c++ OpenCV接口中为数不多的不是底层模板类。相反,它是一个容器,其中包含cv::Point2f类型称为center, cv::Size2f类型的称为size,以及一个额外的值称为angle的选择,后者表示围绕中心的矩形的旋转。cv::RotatedRect和cv::Rect之间有一个非常重要的区别,即cv::RotatedRect位于相对于其中心的“空间”中,而cv::Rect位于相对于其左上角的位置。

操作例子
默认构造函数cv::RotatedRect rr();
拷贝构造函数cv::RotatedRect rr2( rr1 );
带值的构造函数,一个point一个size一个角度值cv::RotatedRect rr( p, sz, theta ) ;
双角创建cv::RotatedRect( p1, p2 );
访问函数成员rr.center; rr.size; rr.angle;
返回拐角的列表rr.points( pts[4] );
  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值