1. 程式人生 > >opencv中Rect類的神奇用法

opencv中Rect類的神奇用法

最近發現opencv中的Rect類非常神奇,其中很多函式使用起來極其方便。一下列舉一些比較實用的函式:

  1. size()函式返回矩形的尺寸大小。返回型別為cv::Size。
  2. area()函式返回矩形的面積,也就是矩形包含的畫素點個數。也就是矩形的(寬*高)的值。
  3. contains(Point)能檢測點是否在矩形內。
  4. inside(Rect)檢測矩形是否在矩形內。
  5. tl()返回矩形左上角的點座標。即top-left。
  6. 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;     //改變尺寸大小