一、点的表示Point类
Point A = Point(10,8)
或者
A.x = 10,A.y=8;
二、颜色的表示Scalar类
Scalar(B,G,R)
三、尺寸的表示Size类
Size(width,height)
四、矩形的表示Rect类
Rect类的成员变量有:x,y,width,height,表示左上角点的坐标和矩形的宽和高
成员函数有:Size()【返回矩形的大小】、area()【返回矩形的面积】、contains(Point)【判断点是否在矩形内】、inside(Rect)【判断矩形是否在该矩形内】、tl()【返回左上角点坐标】、br()【返回右下角点的坐标】
求矩形的交集和并集:
Rect A = rect1&rect2;
Rect B = rect1|rect2;
图像平移和缩放:
Rect rectShift = rect + Point;
Rect rectScale = rect + size;
五、基础图像容器Mat类
Mat类由两个数据部分组成:矩阵头(包含矩阵尺寸、存储方法、存储地址等)和一个存储所有像素值得矩阵的指针
Mat A,C;
A = imread("1.jpg")
Mat B(A);//复制构造函数
C=A;//赋值运算符
注意:使用构造函数和赋值运算符只复制信息头,没有复制矩阵信息
使用clone()和copyTo()函数拷贝矩阵本身
Mat A;
Mat B = A.clone();
Mat G;
G.copyTo(A);
现在改变G、B都不会影响到矩阵A了
创建Mat类的方法:
(1)、使用Mat()构造函数
Mat A(2,2,CV_8UC3,Scalar(0,0,1))
(2)、利用create()函数
Mat A;
A.create(4,5,CV_8UC(3));
(3)、采用matlab式的方法创建
Mat A = Mat::eye(3,3,CV_64F);
Mat B = Mat::zeros(4,4,CV_32F);
Mat C = Mat::ones(5,5,CV_8UC3);
(4)、对小矩阵使用逗号分割式初始化函数
Mat C = (Mat_<double>(3,3)<<1,2,3,4,5,6,7,8,9);
变量:
(1)、static_cast <uchar>
定义uchar型静态变量
(2)、saturate_cast<uchar>
saturate_cast函数的作用即是:当运算完之后,结果为负,则转为0,结果超出255,则为255,防止数据溢出。
来自:OpenCV3 编程入门 毛星云pdf