方式一:
- #include<iostream>
- #include<opencv2/opencv.hpp>
- using namespace std;
- using namespace cv;
- int main()
- {
- //创建一个2*2 类型为8位的uchar类型三通道的 颜色为黄色
- Mat img(2, 2, CV_8UC3, Scalar(0, 255, 255));
- cout << "矩阵元素" << endl << img << endl;
- /*Mat srcImage = imread("G:\\group.jpg");
- cout << "图片矩阵" << endl << srcImage << endl;*/
- return 0;
- }
方式二:
创建三维的矩阵
- //创建一个超过二维的矩阵
- #include<iostream>
- #include<opencv2/opencv.hpp>
- using namespace std;
- using namespace cv;
- int main()
- {
- int sz[3] = { 2, 2, 2 };
- //3维的 为2*2*2的 元素全部为0
- Mat array2(3, sz, CV_8UC1, Scalar(0));
- //因为是三维的,所以不能用DOS界面显示
- return 0;
- }
方式三:
为已经存在的IplImage指针创建一个信息头
- //为已经存在的IplImage指针创建一个信息头
- #include<opencv2/opencv.hpp>
- using namespace cv;
- int main()
- {
- IplImage *img = cvLoadImage("G:\\group.jpg", 1);
- Mat srcImage(img);
- imshow("【测试代码】", srcImage);
- waitKey(0);
- return 0;
- }
方式四:
用Create函数实现对Mat的初始化
- //用Create函数实现对Mat的初始化
- #include<opencv2/opencv.hpp>
- #include<iostream>
- using namespace cv;
- using namespace std;
- int main()
- {
- Mat img;
- img.create(4, 4, CV_8UC(2));
- cout << "M = " << endl << img << endl;
- return 0;
- }
方式五:
采用Matlab的方式初始化
- //采用Matlab的方式初始化
- #include<iostream>
- #include<opencv2/opencv.hpp>
- using namespace std;
- using namespace cv;
- int main()
- {
- Mat array1 = Mat::eye(4, 4, CV_64F);
- Mat array2 = Mat::ones(4, 4, CV_32F);
- Mat array3 = Mat::zeros(4, 4, CV_8UC1);
- cout << "对角矩阵" << endl << array1 << endl;
- cout << "满1矩阵" << endl << array2 << endl;
- cout << "全0矩阵" << endl << array3 << endl;
- return 0;
- }
方式六:
对小矩阵使用逗号分隔式初始化函数
- //对小矩阵使用逗号分隔式初始化函数
- #include<iostream>
- #include<opencv2/opencv.hpp>
- using namespace std;
- using namespace cv;
- int main()
- {
- Mat array = (Mat_<double>(3, 3) << 0, -1, 5, -1, 5, -1, 0, -1, 0);
- cout << "【运行结果】" << endl << array << endl;
- return 0;
- }
方式七:
为已存在的对象创建新信息头
- //为已存在的对象创建新信息头
- #include<iostream>
- #include<opencv2/opencv.hpp>
- using namespace std;
- using namespace cv;
- int main()
- {
- Mat srcImage(3, 3, CV_8UC3, Scalar(0, 0, 255));
- Mat copyImage;
- srcImage.copyTo(copyImage);
- Mat newImage = srcImage.row(1).clone();
- cout << "运行结果" << endl << newImage << endl;
- return 0;
- }