Mat 的创建方方式
Mat(int rows,int cols,int type)
其中,rows代表矩阵的行数,cols代表矩阵的列数,type代表类型,包括通道数及其数据类型,可以设置为CV_8UC(n)、CV_8SC(n)、CV_16SC(n)、 CV_16UC(n)、CV_32SC(n)、CV_32FC(n)、CV_64FC(n)其中8U、8S、16S、16U、32S、32F、64F前面的数字代表Mat中每一个数值所占的bit数,而1byte=8bit,所以,32F就是占4字节的float类型,64F是占8字节的double类型,32S是占4字节的int类型,8U是占1字节的uchar类型,其他的类似;C(n)代表通道数,当n=1时,即构造单通道矩阵或称二维矩阵,当n>1时,即构造多通道矩阵即三维矩阵,直观上就是n个二维矩阵组成的三维矩阵。
Mat其他构造方式:
Mat(Size(int cols,int rows),int type);//Size第一个元素是矩阵的列数(宽),第二个元素是矩阵的行数(高)。
Mat m;
m.create(2,3,CV_32FC1);
m.create(Size(3,2),CV_32FC1);
//构造2行3列矩阵
Mat o = Mat::ones(2,3,CV_32FC1);
//构造2行3列全是1的float类型的单通道矩阵
Mat m = Mat::zeros(Size(3,2),CV_32FC1);
//构造2行3列全是0的float类型的单通道矩阵
Mat m = (Mat_(2,3) << 1,2,3,4,5,6);
//构造2行3列int类型的单通道矩阵
OpenCV中核心类Mat的创建方式
最新推荐文章于 2024-07-20 18:18:21 发布