您的位置:首页 > 运维架构

OpenCV中RotatedRect 以及 Rect介绍

2017-09-11 15:01 531 查看
最近项目中用到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  //求交集,经常用来防止访问溢出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: