#include <iostream>
#include <string>
#include <sstream>
using namespace std;
// OpenCV include;
//#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
int main(int argc, const char** argv)
{
//Mat 的创建
Mat a = Mat(Size(200, 300), CV_32F);
imshow("mat", a);
// Mat 初始化为0 或1 创建
Mat mz = Mat::zeros(10, 10, CV_32F);
Mat mo = Mat::ones(10, 10, CV_32F);
cout << "全0矩阵 mz = " << endl << mz << endl << endl;
cout << "全1矩阵 mo = " << endl << mo << endl << endl;
// 生成单位矩阵
Mat mEye = Mat::eye(Size(10, 10), CV_32F);
cout << "单位矩阵 mEye=" << endl << mEye << endl << endl;
// 矩阵的加减
Mat mA = Mat::eye(Size(4, 4), CV_32F);
Mat mB = Mat::ones(Size(4, 4), CV_32F);
Mat mC = mA + mB;
Mat mD = mA - mB;
cout << "mC=" << endl << mC << endl << endl;
cout << "mD=" << endl << mD << endl << endl;
// 矩阵相乘
Mat m1 = Mat::eye(2, 3, CV_32F);
Mat m2 = Mat::ones(3, 2, CV_32F);
// m1 乘以标量 2
cout << "矩阵与标量相乘: " << endl << m1 << endl << m1 * 2 << endl;
cout << "矩阵与矩阵相乘: " << endl << m1 << endl << m2 << endl << (m1+1).mul(m1+3) << endl;
cout << "矩阵与矩阵相乘: " << endl << m1 << endl << m2 << endl << m1*m2 << endl;
// 矩阵的转置
Mat m1T = m1.t();
cout << "矩阵的转置: " << endl << m1 <<endl << m1T << endl;
// 矩阵的逆
Mat mE = Mat::eye(4, 4, CV_32F);
Mat meInv = mE.inv();
cout << "矩阵的逆: " << endl << mE << endl << meInv << endl;
waitKey(0);
return 0;
}
更多点这里:详细说明