1,由多维数组定义初始化Mat类矩阵;
double m[2][2]={{1.0,2.0},{3.0,4.0}}; Mat M(2,2,CV_64F,m);
2,构造函数定义法
Mat M(2,2,CV_32FC3,Scalar(100,200,300));
Mat M(2,2,CV_32FC2,Scalar(100,200));
Mat M(2,2,CV_8UC1,Scalar(100));
3, M.create(Size(10, 20), CV_32FC3); 在原有的M矩阵上修改大小,数据类型,M中原先的数据被删除类。
4. 类的方法赋值
eye:单位矩阵,ones:全1矩阵,对于多维矩阵,只有第一个通道赋值1,其余通道全赋值0;
5,枚举法赋值
Mat M=(cv::Mat_<int>(3,3)<<1,2,3,4,5,6,7,8,9);
当矩阵尺寸比较大的时候,可以利用循环的方式赋值,但是元素值得有一定的规律才可以。
6,构造对角矩阵diag(b),b必须是Mat类的一维变量;
Mat b=(cv::Mat_<int>(1,3)<<1,2,3);
Mat M=Mat::diag(b);
同样使用diag(int b)函数可以取矩阵的对角数据,此时b是一个int 值
结果:
Mat类矩阵定义初始化方法总结:
构造函数法定义;
枚举法;
类法;文章来源:https://www.toymoban.com/news/detail-423631.html
利用数组赋值法;文章来源地址https://www.toymoban.com/news/detail-423631.html
到了这里,关于cv库学习,一 Mat类矩阵的定义初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!