一幅图像可以看做是一个m*n的矩阵,矩阵的元素的值表示这个位置上的像素的亮度,一般像素值越大则表示该点越亮。
灰度图像:2维矩阵,彩色图像:3维矩阵。
图像数据在计算机内存中的存储顺序为以图像最左上角开始。
Mat 类定义里关键属性:
int flag;
int dims;
int rows,cols;
uchar*data;
构造Mat;
Mat M(3,2,CV_8UC3,Scalar(0,0,255));
创建一个行数为3,列数为2的图像,图像元素是8位无符号整数类型,三个通道。且图像所有像素值被初始化为(0,0,255)
cout<<"M="<<M<<endl;
输出:
M=[0,0,255,0,0,255;
0,0,255,0,0,255;
0,0,255,0,0,255;
]
常用的构造函数有:
Mat::Mat()
无参数构造方法;
Mat::Mat(int rows, int cols, int type)
创建行数为 rows,列数为 col,类型为 type 的图像;
Mat::Mat(Size size, int type)
创建大小为 size,类型为type 的图像;
Mat::Mat(int rows, int cols, int type, const Scalar& s)
行数为 rows,列数为 col,类型为 type 的图像,并将所有元素初始
化为值s;
Mat::Mat(Size size, int