在 OpenCV 中更新 Mat 的子矩阵

2024-02-23

我正在使用 OpenCV 和 C++。我有一个像这样的矩阵 X

Mat X = Mat::zeros(13,6,CV_32FC1);

我只想更新它的一个 4x3 子矩阵,但我对如何有效地访问该矩阵存有疑问。

Mat mat43= Mat::eye(4,3,CV_32FC1);  //this is a submatrix at position (4,4)

我需要逐个元素进行更改吗?


最快的方法之一是设置一个标题矩阵,指向要更新的列/行的范围,如下所示:

Mat aux = X.colRange(4,7).rowRange(4,8); // you are pointing to submatrix 4x3 at X(4,4)

现在,您可以将矩阵复制到 aux (但实际上您会将其复制到 X,因为 aux 只是一个指针):

mat43.copyTo(aux);

就是这样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OpenCV 中更新 Mat 的子矩阵 的相关文章

随机推荐