点的表示: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部分