在两个通道矩阵中插入数据

时间:2015-11-19 12:24:39

标签: c++ opencv

我是OpenCV及其开发人员的新手。我有两个通道矩阵

Mat alleigen( Size(3,3) , CV_32FC2) 

我有数据:

A=[1,2,3]

B=[4,5,6]

c=[7,8,9]

我想像M矩阵那样插入

M= [1 4 7
    2 5 8
    3 6 9]

我如何在OpenCV中执行此操作?

1 个答案:

答案 0 :(得分:1)

你可能不想要一个2通道矩阵,而是一个简单的二维矩阵:

以下代码将生成所需的输出:

A:
[1, 2, 3]

B:
[4, 5, 6]

C:
[7, 8, 9]

M:
[1, 2, 3;
 4, 5, 6;
 7, 8, 9]

代码:

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
    Mat1f A = (Mat1f(1, 3) << 1, 2, 3);
    Mat1f B = (Mat1f(1, 3) << 4, 5, 6);
    Mat1f C = (Mat1f(1, 3) << 7, 8, 9);

    Mat1f M(3,3);

    A.copyTo(M.rowRange(0, 1));
    B.copyTo(M.rowRange(1, 2));
    C.copyTo(M.rowRange(2, 3));

    cout << "A: " << endl << A << endl << endl;
    cout << "B: " << endl << B << endl << endl;
    cout << "C: " << endl << C << endl << endl;
    cout << "M: " << endl << M << endl << endl;

    return 0;
}