OpenCV4 学习笔记 - 2. 了解 cv::Mat

cv::Mat 在 OpenCV 中是一个重要的类,用于表示多维的单通道或多通道数组。它能用于存储复数或实数的向量或矩阵,灰度或彩色图像,向量场,点云,张量,直方图等等。

有许多方法创建 cv::Mat 对象:

  1. Mat(nrows, ncols, type[, fillValue])
  2. Copy constructor or assignment operator
  3. Construct a header for a part of another array
// 创建一个 7x7 的复数矩阵,并以 1+3j 填充
Mat M(7, 7, CV_32FC2, Scalar(1, 3));

// 创建一个 100x100 的单通道8bit 矩阵,并以 255 填充
Mat M(100, 100, CV_8UC1, Scalar(255));

// 创建一个 100x100 的3通道8bit 矩阵
Mat M(100, 100, CV_8UC3);

Mat M1;
M.copyTo(M1);

Mat A = Mat::eye(10, 10, CV_32S);

Mat img(Size(320, 240), CV_8UC3);
Mat roi(img, Rect(10, 10, 100, 100));
Mat B = img(Range::all(), Range(1, 3));

Public Attributes:

  • cols:列数
  • rows:行数
  • dims:维度
  • data:指向数据的 uchar 指针

Public Member Functions:

  • empty:判断数据是否为空
  • at:模板函数,返回对指定矩阵元素的引用
  • begin、end:用于迭代
  • channels:矩阵的通道数
  • clone:返回矩阵的完整的副本
  • copyTo:将矩阵拷贝至另一矩阵
  • convertTo:转换元素类型
  • dot:矩阵乘法
  • mul:元素相乘

Static Public Member Functions:

  • diag:创建对角矩阵
  • eye:创建单位矩阵
  • ones:创建全1矩阵
  • zeros:创建全0矩阵

转载于:https://www.jianshu.com/p/092240d35949

猜你喜欢

转载自blog.csdn.net/weixin_34014277/article/details/91333469