author@jason_ql http://blog.csdn.net/lql0716
OpenCV-顏色通道的分離、合并
顏色通道的分離:split()
c++: void split(const mat& src, mat* mvbegin); c++: void split(inputarray m, outputarrayofarrays mv);
第一個(gè)參數(shù),inputarray類型的m或者const mat&類型的src,填我們需要進(jìn)行分離的多通道數(shù)組。
第二個(gè)參數(shù),outputarrayofarrays類型的mv,填函數(shù)的輸出數(shù)組或者輸出的vector容器
顏色通道的合并:merge()
merge()函數(shù)是split()函數(shù)的逆向操作,將多個(gè)數(shù)組合并成一個(gè)多通道的數(shù)組。它通過組合一些給定的單通道數(shù)組,將這些孤立的單通道數(shù)組合并成一個(gè)多通道的數(shù)組,從而創(chuàng)建出一個(gè)由多個(gè)單通道陣列組成的多通道陣列。
C++; void merge(const Mat* mv, size_tcount, OutputArray dst) C++: void merge(InputArrayOfArrays mv, OutputArray dst)
第一個(gè)參數(shù),mv。填需要被合并的輸入矩陣或vector容器的陣列,這個(gè)mv參數(shù)中所有的矩陣必須有著一樣的尺寸和深度。
第二個(gè)參數(shù),count。當(dāng)mv為一個(gè)空白的C數(shù)組時(shí),代表輸入矩陣的個(gè)數(shù),這個(gè)參數(shù)顯然必須大于1
第三個(gè)參數(shù),dst。即輸出矩陣,和mv[0]擁有一樣的尺寸和深度,并且通洞數(shù)量是矩陣陣列中的通道的總數(shù)。
顏色通道的分離、合并代碼示例
#include <opencv2/opencv.hpp>//#include <opencv2/highgui/highgui.hpp>//#include <opencv2/imgPRoc/imgproc.hpp>//#include <opencv2/core/core.hpp>using namespace cv;using namespace std;//-------------------------------------------------// 顏色通道的分離、合并//通道分離:split()//通道合并:merge()//-------------------------------------------------//split()//c++: void split(const mat& src, mat* mvbegin);//c++: void split(inputarray m, outputarrayofarrays mv);//第一個(gè)參數(shù),inputarray類型的m或者const mat&類型的src,填我們需要進(jìn)行分離的多通道數(shù)組//第二個(gè)參數(shù),outputarrayofarrays類型的mv,填函數(shù)的輸出數(shù)組或者輸出的vector容器////merge()//merge()函數(shù)是split()函數(shù)的逆向操作,將多個(gè)數(shù)組合并成一個(gè)多通道的數(shù)組。它通過組合一些//給定的單通道數(shù)組,將這些孤立的單通道數(shù)組合并成一個(gè)多通道的數(shù)組,從而創(chuàng)建出一個(gè)由多個(gè)//單通道陣列組成的多通道陣列。//C++; void merge(const Mat* mv, size_tcount, OutputArray dst)//C++: void merge(InputArrayOfArrays mv, OutputArray dst)//第一個(gè)參數(shù),mv。填需要被合并的輸入矩陣或vector容器的陣列,這個(gè)mv參數(shù)中所有的矩陣必須//有著一樣的尺寸和深度。//第二個(gè)參數(shù),count。當(dāng)mv為一個(gè)空白的C數(shù)組時(shí),代表輸入矩陣的個(gè)數(shù),這個(gè)參數(shù)顯然必須大于1//第三個(gè)參數(shù),dst。即輸出矩陣,和mv[0]擁有一樣的尺寸和深度,并且通洞數(shù)量是矩陣陣列中的//通道的總數(shù)。//-------------------------------------------------//------------------------------------【main()函數(shù)】-----------------------------------// 描述:控制臺(tái)應(yīng)用程序的入口函數(shù),我們的程序從這里開始//-------------------------------------------------------------------------------------int main(){ cv::Mat srcImage, dst; std::vector<cv::Mat> channels; srcImage = cv::imread("D:/test/source/img/031.jpg"); //把一個(gè)3通道圖像轉(zhuǎn)換為3個(gè)單通道圖像,分別存儲(chǔ)在channels[0], channels[1], channels[2] cv::split(srcImage, channels); //分離色彩通道 cv::merge(channels, dst); //合并色彩通道 cv::imshow("img1", channels[0]); cv::imshow("img2", channels[1]); cv::imshow("img3", channels[2]); cv::imshow("img4", dst); cv::waitKey(0);}新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注