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