我想在一个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文档中,我发现:

最佳答案


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

您要创建一个包含3个std::vector的数组,而您想要一个包含3个元素的std::vector:
std::vector<cv::Mat> channels(3);
                             ^ ^

关于c++ - 没有与cv::merge匹配的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53206658/

10-13 06:29