OpenCV中RotatedRect 以及 Rect介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dongfang1984/article/details/77933266

最近项目中用到RotatedRect 这里记录一下

1、RotatedRect

//构建一个Mat(200*200)
Mat image(200, 200, CV_8UC3, Scalar(0));  
//设置一个旋转矩形3个参数分别为:质心(矩形中心),矩形长宽100、50 旋转角度:30 (clockwise)
//RotatedRect 函数返回一个旋转矩形对象
RotatedRect rRect = RotatedRect(Point2f(100,100), Size2f(100,50), 30);

Point2f vertices[4];      //定义4个点的数组
rRect.points(vertices);   //将四个点存储到vertices数组中
for (int i = 0; i < 4; i++)
    // 注意Scala中存储顺序 BGR
    line(image, vertices[i], vertices[(i+1)%4], Scalar(0,255,0));
// 返回外接矩形
Rect brect = rRect.boundingRect();
rectangle(image, brect, Scalar(255,0,0));
imshow("rectangles", image);
waitKey(0);

这里写图片描述

2、Rect

Rect rect(x,y,_width,height) // 注意后面两个数值
//一个image: _width=image.cols height=image.height 
rect.area();   //返回矩形面积
rect.tl();     // top-left corner, 返回值为Point_<Tp>类型
rect.br();     // bottom-right corner , 返回值为Point_<Tp>类型
rect.contains(Point(x, y));  //Rect 是否包含Point ,返回bool类型

recta & rectb  //求交集,经常用来防止访问溢出 
展开阅读全文

没有更多推荐了,返回首页