opencv创建Mat对象

在opencv中引入了Mat类。

Mat类是一个非常优秀的图像类,它同时也是一个通用的矩阵类,可以用来创建和操作多维矩阵。Mat类里面定义了许多构造函数,可以很方便地根据要求创建Mat对象。

常使用的构造函数有:

1:Mat::Mat()无参数构造函数;

2:Mat::Mat(int rows, int cols, int type)

3:  Mat::Mat(int size, int type)

4: Mat::Mat(int rows, int cols, int type, const Scalar&s)//创建行数为rows,列数为cols,类型为type的图像,并将元素初始化位置s;

5: Mat::Mat(Size size, int type, const Scalar & s)//创建大小size, 类型为tyoe的图像,并将所有的元素初始化为值s;

6: Mat::Mat(const Mat&m)//将m赋值给新创建的对象,此处不会对图像数据进行复制,m和新对象共用图像数据;

7: Mat::Mat(int rows, int cols, int type, void*date, size_t = AUTO_STEP)//创建行数为 rows,列数为 col,类型为 type 的图像,此构造函数不创建
图像数据所需内存,而是直接使用 data 所指内存,图像的行步长由 step指定。

8: Mat::Mat(Size size, int type, void *date, size_t step = AUTO_STEP)//创建大小为 size,类型为 type 的图像,此构造函数不创建图像数据所内存,而是直接使用 data 所指内存,图像的行步长由 step 指定;

9: Mat::Mat(const Mat&m, const Range & rowRange, const Range & colRange)//创建的新图像为 m 的一部分,具体的范围由 rowRange 和 colRange 指定,此构造函数也不进行图像数据的复制操作,新图像与 m 共用图像数据;

10: Mat::Mat(const Mat & m, const Rect & roi)//创建的新图像为 m 的一部分,具体的范围 roi 指定,此构造函数也不进行图像数据的复制操作,新图像与 m 共用图像数据;

猜你喜欢

转载自blog.csdn.net/ab1605014317/article/details/88931820