opencv矩阵运算(二)

显式创建Mat矩阵的七种方法

1.使用Mat()构造方法创建

//参数:行数,列数,数据类型及通道数,每块的数据
//数据类型及通道数:CV_[位数][是否有符号][数据类型]C[通道数]
Mat m(288,288,CV_8UC3,Scalar(0,0,255));

2.多维度的使用Mat()构造方法创建

//创建三维的矩阵,设置每个维度的尺寸
int s[3]={2,2,2};
Mat m1(3,s,CV_8UC3,Scalar(0,0,255));

3.create函数创建

Mat m2;
m2.create(2,2,CV_8UC(2));

4.创建特殊矩阵

//创建单位阵
Mat E = Mat::eye(2,2,CV_16F);
cout<<E<<endl;
//创建零矩阵
Mat Z = Mat::zeros(2,2,CV_16F);
cout<<Z<<endl;
//创建一矩阵
Mat O = Mat::ones(2,2,CV_16F);
cout<<O<<endl;

5.模板创建矩阵

Mat C = (Mat_<double>(2,2)<<1,0,0,1);
cout<<C<<endl;

6.使用clone()或者copyTo()创建

Mat C = (Mat_<double>(2,2)<<1,0,0,1);
cout<<C<<endl;
Mat D=C.clone();
Mat E;
D.copyTo(E);
cout<<E<<endl;

7.使用IplImage对象创建再转换成Mat矩阵

//opencv2.x.x和opencv3.x.x支持,opencv4.x.x不支持
IplImage* img = cvLoadImage(fileName,flag)
Mat G = mtx(img)
cout<<G<<endl;

  

posted @ 2020-02-17 18:38  NAVYSUMMER  阅读(321)  评论(0)    收藏  举报
交流群 编程书籍