OpenCV 通道合並:merge() 函數


C++ 的函數原型如下。

  • C++:void merge(const Mat *mv,size_t count,OutputArray dst);
  • C++:void merge(InputArrayOfArrays mv,OutputArray dst);

變量介紹如下。

  • 第一個參數,mv。填需要被合並的輸入矩陣或vector 容器的陣列,這個mv參數中所有的矩陣必須有着一樣的尺寸和深度。
  • 第二個參數,count。當mv為一個空白的C數組時,代表輸入矩陣的個數,這個參數顯然必須大於1。
  • 第三個參數,dst。即輸出矩陣,和mv[0]擁有一樣的尺寸和深度,並且通道的數量是矩陣陣列中的通道的總數。
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char ** argv)
{
    Mat srcImage;
    Mat dstImage;
    vector<Mat> channels;
    srcImage = cv::imread("1.jpg");

    // 分離彩色通道
    split(srcImage, channels);

  /*  imshow("B 通道", channels.at(0));
    imshow("G 通道", channels.at(1));
    imshow("R 通道", channels.at(2));*/
    
    // 合並
    merge(channels, dstImage);
    imshow("通道合成", dstImage);

    waitKey(0);
    return(0);
}

運行:




參考:

《OpenCV3 編程入門》 毛星雲 P126


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM