[OpenCV3编程入门读书笔记]常用数据结构和函数(3)

点的表示:Point类

//第一种表示方式
Point point;
point.x = 10;
point.y = 8;

//第二种表示方式
Point point = Point(10,8);

颜色的表示:Scalar类

特别注意OopenCV里面不是RGB,是BGR,所以下面的a是蓝色分量,b是绿色分量,c是红色分量。

Scalar(a,b,c);

尺寸的表示:Size类

Size(5,5);

矩阵的表示:Rect类

Rect类的成员变量有x,y,width,height,分别为左上角的坐标的矩形的宽度和高度。

常用的成员函数有:

//如果创建一个Rect对象rect(100, 50, 50, 100),那么rect会有以下几个功能:

rect.area();     //返回rect的面积 5000

rect.size();     //返回rect的尺寸 [50 × 100]

rect.tl();       //返回rect的左上顶点的坐标 [100, 50]

rect.br();       //返回rect的右下顶点的坐标 [150, 150]

rect.width();    //返回rect的宽度 50

rect.height();   //返回rect的高度 100

rect.contains(Point(x, y));  //返回布尔变量,判断rect是否包含Point(x, y)点

rect.inside(Rect());   //判断矩阵是否包含矩形

如果想求两个矩形的交集和并集:

Rect rect = rect1 & rect2;
Rect rect = rect1 | rect2;

平移操作:

rect = rect + Point(-100, 100);	//平移,也就是左上顶点的x坐标-100,y坐标+100

缩放操作:

rect = rect + Size(-100, 100);	//缩放,左上顶点不变,宽度-100,高度+100

矩形比较:

//对矩形进行对比,返回布尔变量
rect1 == rect2;
rect1 != rect2;

颜色空间转换函数:cvtColor()函数

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0)

第一个参数是输入图像,第二个参数是输出图像,第三个参数是颜色空间转换的标识符,dstCn是目标图像的通道数,该参数为0时,目标图像根据源图像的通道数和具体操作自动决定

  • OpenCV2的CV_前缀宏命名规范被OpenCV3中的COLOR_式的宏命名前缀取代
  • 注意RGB色彩空间默认通道顺序为BGR
  • 具体可以参考: enum cv::ColorConversionCodes部分

猜你喜欢

转载自blog.csdn.net/sinat_33487968/article/details/84573407
今日推荐