opencv 单通道合并为多通道

Posted ligei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv 单通道合并为多通道相关的知识,希望对你有一定的参考价值。

int main()
    cv::Mat m1=(cv::Mat_<int>(3,2)<<1,2,3,4,5,6);
    cv::Mat m2=(cv::Mat_<int>(3,2)<<2,4,6,8,10,12);
    cv::Mat m3=(cv::Mat_<int>(3,2)<<3,6,9,12,15,18);

    cv::Mat inm[]=m1,m2,m3;
    cv::Mat outm;
    cv::merge(inm,3,outm);  // 合并后行数和列数不变。each element of the output array will be a concatenation of the elements of
    // the input arrays, where elements of i-th input array are treated as mv[i].channels()-element vectors.
    std::cout<<outm<<std::endl;

    std::vector<cv::Mat> inm1;
    inm1.push_back(m1);
    inm1.push_back(m2);
    inm1.push_back(m3);
    cv::Mat outm1;
    cv::merge(inm1,outm1);
    std::cout<<outm1<<std::endl;
    std::cout<<"outm1.rows:"<<outm1.rows<<std::endl;
    std::cout<<outm1.rowRange(1,3)<<std::endl;
    std::cout<<"outm1.cols:"<<outm1.cols<<std::endl;
    std::cout<<outm1.colRange(0,1)<<std::endl;
    return 0;

注意:使用merge函数合并后生成的新矩阵行数和列数与输入矩阵的相同。

技术图片

以上是关于opencv 单通道合并为多通道的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV-颜色通道的分离合并(转)

Opencv图像色彩空间与通道

opencv:通道的分离与合并

openCV-python(六)图像操作——通道拆分与合并

OpenCV 函数学习12-图像通道的合并(cv2.merge)

OpenCV通道的分离和合并