基础图像容器 Mat
#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
using namespace std;
using namespace cv;
int main()
{
Mat M(2, 2, CV_8UC3, Scalar(0, 0, 255));
cout << "M = " << endl << " " << M << endl << endl;
M.create(4, 4, CV_8UC2);
cout << "M = " << endl << " " << M << endl << endl;
Mat E = Mat::eye(4, 4, CV_64F);
cout << "E = " << endl << " " << E << endl << endl;
Mat O = Mat::ones(2, 2, CV_32F);
cout << "O = " << endl << " " << O << endl << endl;
Mat Z = Mat::zeros(3, 3, CV_8UC1);
cout << "Z = " << endl << " " << Z << endl << endl;
Mat C = (Mat_<double>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
cout << "C = " << endl << " " << C << endl << endl;
Mat RowClone = C.row(1).clone();
cout << "RowClone = " << endl << " " << RowClone << endl << endl;
cout << "C = " << endl << " " << C << endl << endl;
Mat r = Mat(10, 3, CV_8UC3);
randu(r, Scalar::all(0), Scalar::all(255));
cout << "r(Opencv默认风格) = " << r << ";" << endl << endl;
cout << "r(Python风格) = " << format(r, Formatter::FMT_PYTHON) << ";" << endl << endl;
cout << "r(逗号分隔风格) = " << format(r, Formatter::FMT_CSV) << ";" << endl << endl;
cout << "r(Numpy风格) = " << format(r, Formatter::FMT_NUMPY) << ";" << endl << endl;
cout << "r(C语言分格) = " << format(r, Formatter::FMT_C) << ";" << endl << endl;
Point2f p(6, 2);
cout << "【二维点】p = " << p << ";\n" << endl;
Point3f p3f(8, 2, 0);
cout << "【三维点】p3f = " << p3f << ";\n" << endl;
vector<float> v;
v.push_back(3);
v.push_back(5);
v.push_back(7);
cout << "【基于Mat的vector】shortvec = " << Mat(v) << ";\n" << endl;
vector<Point2f> points(20);
for (size_t i = 0;i < points.size();i++)
{
points[i] = Point2f((float)(i * 5), (float)(i % 7));
}
cout << "【二维点向量】points = " << points << ";\n" << endl;
}