OpenCV--Mat类相关操作

转载自:https://blog.csdn.net/weixin_41706166/article/details/89923354

博主:素筒肠

来源:CSDN


1.Mat::row
功能: 创建一个指定行数的矩阵头并返回,新矩阵和原始矩阵共享一份基础数据函数原型

C++: Mat Mat::row(int i) const

参数
i: 需要选取的行索引

2.Mat::col
功能: (同上,改为列)

3.Mat::rowRange
功能: 创建一个指定行范围的矩阵头并返回,新矩阵和原始矩阵共享一份基础数据

C++: Mat Mat::rowRange(int startrow, int endrow) const
C++: Mat Mat::rowRange(const Range& r) const

参数
startrow : 一个包容性的0基(从0开始)的行span起始索引.。
endrow : 一个0基的独占性的行span.终止索引。
r : Range 结构包含着起始和终止的索引值。

4.Mat::colRange
功能: (同上,改为列)

5.Mat::diag
功能: 提取或创建矩阵对角线

C++: Mat Mat::diag(int d) const
C++: static Mat Mat::diag(const Mat& matD)

参数
d: 对角线的索引值,可以是以下的值:

  • d=0 是主对角线
  • d>0表示下半部的对角线。例如:d=1对角线是紧挨着住对角线并位于矩阵下方。
  • d<0表示来自矩阵上半部的对角线。例如:d= 1表示对角线被设置在对角线的上方并紧挨着。

matD: 单列用于形成矩阵对角线的列。
例:

Mat A = (Mat_<char>(4, 4) << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
Mat B = A.diag(1);
cout << A << endl;
cout << B << endl;

在这里插入图片描述
6.Mat::clone
功能: 创建一个数组及其基础数据的完整副本

C++: Mat Mat::clone() const

例:

Mat A = (Mat_<char>(4, 4) << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
Mat D = A.clone();
cout << A << endl;
cout << D << endl;

在这里插入图片描述
7.Mat::copyTo
功能: 和clone相似,将矩阵复制到另一个矩阵中去

C++: void Mat::copyTo(OutputArray m) const
C++: void Mat::copyTo(OutputArray m, InputArray mask) const

参数
m : 目标矩阵。如果它的尺寸和类型不正确,在操作之前会重新分配。
mask: 操作掩码。它的非零元素表示矩阵中某个要被复制。

  • PS:MASK表示位图,由0,1组成,选择哪个像素需要拷贝,哪个像素不需要拷贝)
  • PPS:这个函数与clone的区别在于,clone是直接进行复制,而copyTo则会先判定一下图像的size和要复制的Mat size是否一致,如果不一致会先声情空间再复制)

8.Mat::setTo
功能: 将阵列中所有的或部分的元素设置为指定的值

C++: Mat& Mat::setTo(const Scalar& s, InputArray mask=noArray())

参数
s : 把标量赋给阵列并转化到阵列的实际类型。
mask: 与 *this尺寸相同的操作掩码。把矩阵mask中元素不为0的点全部变为value值

9.Mat::reshape
功能: 改变Mat对象的形状或通道数

C++: Mat Mat::reshape(int cn, int rows=0) const

参数
cn: 新的通道数。若cn=0,那么通道数就保持不变。
rows : 新的行数。 若rows = 0, 那么行数保持不变。

10.Mat::t
功能: 矩阵转置

C++: MatExpr Mat::t() const

11.Mat::inv
功能: 求矩阵的逆

C++: MatExpr Mat::inv(int method=DECOMP_LU) const

12.Mat::mul
功能: 两个矩阵相乘

C++: MatExpr Mat::mul(InputArray m, double scale=1) const

参数
m: 与*this具有相同类型和大小的矩阵,或矩阵表达式。
scale : 可选缩放系数。

13.Mat::cross
功能: 矩阵叉乘

14.Mat::dot
功能: 矩阵点乘

发布了95 篇原创文章 · 获赞 290 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/baidu_38172402/article/details/93744829
今日推荐