Mat类是OpenCV 中最核心的类,全称是Matrix,意为矩阵或者数组的意思,该类的声明在头文件opencv2\core\core.hpp中,
Mat 类的构造函数如下:
Mat(int rows,int cols,int type)
其中rows代表矩阵的行数,cols代表矩阵的列数,type代表类型,包括通道数及其数据类型,可以设CV_8UC(n),CV_8SC(n),CV_16SC(n),CV_16UC(n),CV_32UC(n),CV_32FC(n),CV_64FC(n),8U,8S,16U,16S,32S,32F,64F前面的数字代表Mat中的每一个数值所占的bit数,而1byte=8it,所以,32F就是占4字节的float类型,64F是占8字节的double类型,32S是占4字节的int类型,8U是占1字节的ucharl类型,当n=1时,即构造单通道矩阵或称二维矩阵,当n>1时,即构造多通道矩阵即三维矩阵,直观上就是n个二维矩阵组成的三维ndarray是等价的。对于Mat构造函数也可以采用以下形式:
Mat(Size(int cols,int rows), int type)
其中使用了OpenCV的Size类,该类一般用来存储矩阵的列数和行数,在这里应该注意的是,Size的第一个元素是矩阵的列数(宽),第二个元素是矩阵的行数(高),即先存宽,再存高,与ndarray的shape相反。
(1)构造单通道Mat对象
构造2行3列float类型的单通道矩阵:
#include<opencv2/core/core.hpp&