OpenCV Mat类
Mat 类的特点
- 图像的内存分配和释放由Mat类自动管理
- Mat类由两部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和指向存储所有像素值的矩阵的指针
Mat的创建
1.使用Mat构造函数
Mat常用的构造函数有以下几种
1、Mat::Mat()
无参数构造方法;
//Mat A;
2、Mat::Mat(int rows, int cols, int type)
创建行数为 rows,列数为 col,类型为 type 的图像;
//Mat A(10, 10, 8UC3);
3、Mat::Mat(Size size, int type)
创建大小为 size,类型为 type 的图像;
//int size[3] = {2, 2, 2};
//Mat A(size, CV_8UC3);
4、Mat::Mat(int rows, int cols, int type, const Scalar& s)
创建行数为 rows,列数为 col,类型为 type 的图像,并将所有元素初始化为值 s;
//Mat A(7,7,CV_32FC2,Scalar(1,3));
//表示创建一个2通道,且每个通道的值都为(1,3),深度为32,7行7列的图像矩阵。
5、Mat::Mat(Size size, int type, const Scalar& s)
创建大小为 size,类型为 type 的图像,并将所有元素初始化为值 s;
//Mat A(size, 8UC3, Scalar(1,3));
6、Mat::Mat(const Mat& m)
将m赋值给新创建的对象,此处不会对图像数据进行复制,m和新对象共用图像数据,属于浅拷