1. 程式人生 > 其它 >opencv-merge通道合併

opencv-merge通道合併

方式一

    cv::Mat src(4, 3, CV_8UC1,cv::Scalar(10));
    cv::Mat src1(4, 3, CV_8UC1,cv::Scalar(20));
    cv::Mat src2(4, 3, CV_8UC1,cv::Scalar(30));

    cv::Mat dst;
    cv::Mat newChannels[3]={src,src1,src2};

    cv::merge(newChannels, 3, dst);//通道合併
    //引數1:單通道陣列
    //引數2:需要合併矩陣的個數
    //引數3:目標矩陣

    std::cerr
<<src<<std::endl; std::cerr<<src1<<std::endl; std::cerr<<src2<<std::endl; std::cerr<<dst<<std::endl;

方式二

    std::vector<cv::Mat> channels;
    cv::Mat src(4, 3, CV_8UC1,cv::Scalar(10));
    cv::Mat src1(4, 3, CV_8UC1,cv::Scalar(20));
    cv::Mat src2(
4, 3, CV_8UC1,cv::Scalar(30)); channels.push_back(src); channels.push_back(src1); channels.push_back(src2); cv::Mat dst; cv::merge(channels, dst);//通道合併 //引數1:單通道陣列 //引數2:目標矩陣 std::cerr<<src<<std::endl; std::cerr<<src1<<std::endl; std::cerr
<<src2<<std::endl; std::cerr<<dst<<std::endl;