OpenCV Rect操作

1,OpenCV Rect 常用操作符 

注意:坐标系是标准的笛卡尔坐标系,X方向向右为正,Y方向向上为正
操作例子
默认构造函数cv::Rect r
赋值构造函数cv::Rect r2(r1)
带参数构造函数cv::Rect(x,y,w,h)
原始点和Size构造函数cv::Rect(p,sz)
两个角点构造函数cv::Rect(p1,p2)
成员函数访问r.x,r.y,r.width,r.height
计算面积r.erea()
提取左上角点坐标r.tl()
提取右下角点坐标r.br()
判断点是否在矩阵内r.contains(p)
计算两个矩形的交集cv::Rect r3=r1&r2
计算最小面积矩阵包含r1和r2cv::Rect r3=r1|r2
平移矩形,变量为xcv::Rect r3=r+x
扩展矩形区域,Sizecv::Rect rs=r+s
比较两个矩形是否相同bool eq=(r1==r2)
比较两个矩形是否不相同bool ne=(r1==r2)
  

2,应用的例子

//包含OpenCV的头文件
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace  std;
//使用OpenCV的命名空间
using namespace cv;
//Rect 类型操作 类型
int main()
{
	//1,默认构造函数
	Rect r0;//数据为 0x0 from (0,0)
	cout << r0 << endl;

	//2,赋值构造函数
	Rect r1(0, 0, 1, 1);
	Rect r2(r1);//数据为 1x1 from(0,0)
	cout << r2 << endl;

	//3,带参数的构造函数
	Rect r3(0, 1, 2, 3);//数据为 2x3 from (0,1)
	cout << r3 << endl;

	//4,从原始点和Size 构造函数 
	Rect r4(Point2f(2, 2), Size(1, 1));
	cout << r4 << endl;//数据为1x1 from(2,2);

	//5,访问成员函数
	Rect r5(1, 2, 3, 4);
	cout << r5.x << '\t' << r5.y << '\t' << r5.width << '\t' << r5.height << endl;
	
	//6,提取左上角坐标
	cout << r5.tl() << endl;//左上角坐标为(1,2)
	
	//7,提取右上角坐标
	cout << r5.br() << endl;//右下角坐标为(4,6)

	//8,判断一个点是否在矩形区域内
	bool bValue = r5.contains(Point2f(3, 3));
	cout << bValue << endl;//(3,3)是在矩形区域内

	//9,计算两个矩形区域的交集
	Rect r00(0, 0, 2, 2);
	Rect r01(1, 1, 2, 2);
	Rect rResult = r00&r01;
	cout << rResult << endl;//结果为1*1 from(1,1);

	//10.计算两个矩形区域的并集
	rResult = r00 | r01;
	cout << rResult << endl;//结果为 3*3 from(0,0)

	//11
	rResult = r00 + Size(2,1);//宽度+2 ,高度+1
	cout << rResult << endl;//结果为 4x3 from(0,0)

	//12
	rResult = r00 + Point2i(1,2);
	cout << rResult << endl;//结果为2*2  from (1,2) 

	
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值