从矩阵复制列向量到OpenCV中另一个矩阵的每个col

copy column vector from a matrix into each col of another matrix in opencv

本文关键字:另一个 col 复制 向量 OpenCV      更新时间:2023-10-16

这可能很简单,但绝对找不到有效的答案,对不起...

假设我有一个矩阵A,我想将其第一列复制几次到矩阵B中;即;

A = [1 2 3; 2 3 4; 5 6 7]我想提取

A(:,1);

并将此矢量复制到另一个矩阵中。因此,将我们带到

B = [1 2 3; 1 2 3; 1 2 3];

下一个循环后,b将是:

B = [2 3 4; 2 3 4; 2 3 4];

等等,直到我依次获得矩阵B

中的所有A列

在OPENCV中有实用的解决方案吗?我已经尝试使用copyto(),range和col,col,但我什么也没得到。我真的很感谢您的帮助。

问候;

jenn。

只需使用mat :: row访问循环中的矩阵的每一行,然后使用mat :: copyto将选定的行复制到新垫子

参见示例

Mat A=(Mat_<uchar>(3,3)<< 1,2,3,
                          2,3,4,
                          5,6,7);
Mat B(A.rows,A.cols,CV_8UC1);

for(int i=0;i<A.rows;i++) {
  for(int j=0;j<A.rows;j++){
    A.row(i).copyTo(B.row(j));
  }
 cout<<B<<endl;
}

您也可以使用MAT :: push_back进行此操作。

参见示例

Mat A=(Mat_<uchar>(3,3)<< 1,2,3,
                          2,3,4,
                          5,6,7);
 for(int i=0;i<A.rows;i++) {
    Mat B;
    for(int j=0;j<A.rows;j++){
      B.push_back(A.row(i));
     }
     cout<<B<<endl;
  }
相关文章: