cv::Rect矩形类用法


[cpp]  view plain  copy
  1. //如果创建一个Rect对象rect(100, 50, 50, 100),那么rect会有以下几个功能:    
  2. rect.area();     //返回rect的面积 5000    
  3. rect.size();     //返回rect的尺寸 [50 × 100]    
  4. rect.tl();       //返回rect的左上顶点的坐标 [100, 50]    
  5. rect.br();       //返回rect的右下顶点的坐标 [150, 150]    
  6. rect.width();    //返回rect的宽度 50    
  7. rect.height();   //返回rect的高度 100    
  8. rect.contains(Point(x, y));  //返回布尔变量,判断rect是否包含Point(x, y)点    
  9.     
  10. //还可以求两个矩形的交集和并集    
  11. rect = rect1 & rect2;    
  12. rect = rect1 | rect2;    
  13.     
  14. //还可以对矩形进行平移和缩放      
  15. rect = rect + Point(-100, 100); //平移,也就是左上顶点的x坐标-100,y坐标+100    
  16. rect = rect + Size(-100, 100);  //缩放,左上顶点不变,宽度-100,高度+100    
  17.     
  18. //还可以对矩形进行对比,返回布尔变量    
  19. rect1 == rect2;    
  20. rect1 != rect2;    
  21.     
  22. //判断rect1是否在rect2里面  
  23. bool isInside(Rect rect1, Rect rect2)    
  24. {    
  25.     return (rect1 == (rect1&rect2));    
  26. }    
  27.     
  28. //矩形中心点  
  29. Point getCenterPoint(Rect rect)    
  30. {    
  31.     Point cpt;    
  32.     cpt.x = rect.x + cvRound(rect.width/2.0);    
  33.     cpt.y = rect.y + cvRound(rect.height/2.0);    
  34.     return cpt;    
  35. }    
  36.     
  37. //围绕矩形中心缩放    
  38. Rect rectCenterScale(Rect rect, Size size)    
  39. {    
  40.     rect = rect + size;     
  41.     Point pt;    
  42.     pt.x = cvRound(size.width/2.0);    
  43.     pt.y = cvRound(size.height/2.0);    
  44.     return (rect-pt);    
  45. }   

  • cv::Rect矩形类参数设置
[cpp]  view plain  copy
  1. typedef struct CvRect   
  2.   {   
  3.   int x; /* 方形的左上角的x-坐标 */   
  4.   int y; /* 方形的左上角的y-坐标*/   
  5.   int width; /* 宽 */   
  6.   int height; /* 高 */   
  7.   }  

[cpp]  view plain  copy
  1. int x = 50;  
  2. int y = 50;  
  3. int width = 50;  
  4. int height = 50;  
  5. cv::Rect rect(x, y, width, height);  

注意四个参数 不是 矩形的左上角和右下角的坐标
  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`cv::Rect` 是 OpenCV 中用于表示矩形。它提供了一种简单的方式来表示和操作矩形,通常用于图像处理和计算机视觉应用中。 `cv::Rect` 的构造函数有多个重载形式,其中最常用的形式是 `cv::Rect(int x, int y, int width, int height)`,它接受四个参数,分别是矩形左上角的 x 坐标、y 坐标、宽度和高度。例如,`cv::Rect(10, 20, 30, 40)` 表示一个左上角坐标为 (10, 20),宽度为 30,高度为 40 的矩形。 除了构造函数之外,`cv::Rect` 还提供了一些成员函数和运算符,用于获取或修改矩形的各个属性,例如: - `x`:矩形左上角的 x 坐标; - `y`:矩形左上角的 y 坐标; - `width`:矩形的宽度; - `height`:矩形的高度; - `area()`:计算矩形的面积; - `contains(Point pt)`:判断一个点是否在矩形内部; - `intersect(Rect rect)`:计算矩形与另一个矩形的交集; - `union(Rect rect)`:计算矩形与另一个矩形的并集; - `operator+(Point pt)`:将矩形平移指定的偏移量; - `operator&(Rect rect)`:计算矩形与另一个矩形的交集; - `operator|(Rect rect)`:计算矩形与另一个矩形的并集。 在使用 `cv::Rect` 表示矩形时,通常需要将其作为函数的参数传递或作为其他 OpenCV 函数和的输入或输出。其中,最常见的用法是将其用于表示图像中的矩形区域,例如使用 `cv::Rect` 构造函数和成员函数来获取或修改图像中的感兴趣区域(ROI)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值