最近发现opencv中的Rect类非常神奇,其中很多函数使用起来极其方便。一下列举一些比较实用的函数:
- size()函数返回矩形的尺寸大小。返回类型为cv::Size。
- area()函数返回矩形的面积,也就是矩形包含的像素点个数。也就是矩形的(宽*高)的值。
- contains(Point)能检测点是否在矩形内。
- inside(Rect)检测矩形是否在矩形内。
- tl()返回矩形左上角的点坐标。即top-left。
- br()返回矩形右下角点坐标。即bottom-right。
还有更神奇的招数!如果要求两个矩形的交集与并集,opencv的Rect类提供了非常方便的方式。
Rect rect = rect1 & rect2;
Rect rect = rect1 | rect2;
如果想将Rect平移,可以这样写:
Rect r1(0, 0, 5, 5);
Point p(2, 3);
Rect r2 = r1 + p; //平移
如果想改变矩形的尺寸大小,可以这样写:
Rect r1(0, 0, 5, 5);
Size s(-1, -1);
Rect r2 = r1 + s; //改变尺寸大小