没有与cv :: merge匹配的功能

时间:2018-11-08 11:16:43

标签: c++ opencv image-processing

我想在一个3通道的opencv矩阵中合并3个单色相机图像。我可以通过以下方式尝试:

    cv::Mat merged;
    std::vector<cv::Mat> channels[3];

    while(1){
        channels[0]=Camera1->getNextFrameSWTrig();  //give back frame_time and frame_num
        channels[1]=Camera2->getNextFrameSWTrig();  //give back frame_time and frame_num
        channels[2]=Camera3->getNextFrameSWTrig();

        cv::merge(channels, merged);

        (*buffer).push_back(merged.clone());

    }

但是出现以下错误消息:

  

没有用于调用“合并”的匹配功能

我在OpenCV文档中找到了全部

  

C ++:void merge(InputArrayOfArrays mv,OutputArray dst)

1 个答案:

答案 0 :(得分:3)

使用

std::vector<cv::Mat> channels[3];
                             ^ ^

您要创建一个包含3个std::vector的数组,而您想要一个包含3个元素的std::vector

std::vector<cv::Mat> channels(3);
                             ^ ^