1、利用默认构造函数
cv::Mat::Mat();
这种构造方式不需要输入任何的参数,在后续给变量赋值的时候会自动判断矩阵的类型与大小,存储方式比较灵活。
2、利用矩阵尺寸和类型参数构造Mat类
(1)
cv::Mat::Mat( int rows,
int cols,
int type
)
rows : 构造矩阵的行数
cols : 构造矩阵的列数
type : 矩阵中存储的数据类型
其中,type处填写包括CV_8UC1(八位单通道数据)、CV_8UC3(八位三通道数据)
例:
cv::Mat a(640,480,CV_8UC3) //创建一个640*480的3通道矩阵用于存放彩色图像
cv::Mat a(3,3,CV_8UC1) //创建一个3*3的8位无符号整数的单通道矩阵
(2)
cv::Mat::Mat(Size size(),
int type
)
size : 2D数组变量尺寸,通过Size(cols, rows)进行赋值
type : 矩阵中存储的数据类型
注意:使用Size()时,列在前、行在后,也就是Size(列,行)
例:
cv::Mat a(Size(480, 640), CV_8UC1); //构造一个行为640,列为480的单通道矩阵
cv::Mat b(Size(480, 640), CV_32FC3); //构造一个行为640,列为480的3通道矩