[學習opencv]彩色圖像通道分離、合成

將彩色圖像RGB三色分離出來是一個很有意義的操作。

用到void split(const Mat& mtx,vector<Mat>& mv),void merge(const vector<Mat>& mv,Mat& dst)這兩個函數。

#include "cv.h"#include "highgui.h"#include <iostream>#include <vector>using namespace std;using namespace cv;int main(int argc, char* argv[]){ Mat src = imread("misaka.jpg"); Mat dst; vector<Mat> bgr; //顏色通道分離 //輸入圖像 //分離後各通道 split(src,bgr); //顏色通道合成 //輸入各通道 //輸入圖像 merge(bgr,dst); imshow("dst",dst); //用彩色圖像形象的表示一下,除了原通道保留,其餘兩通道置0 Mat tmp(src.size(),CV_8U,Scalar(0)); vector<Mat> b,g,r; //用來表示的彩色圖像 for(int i=0;i<3;i++) { if(i==0) b.push_back(bgr[0]); else b.push_back(tmp); if(i==1) g.push_back(bgr[1]); else g.push_back(tmp); if(i==2) r.push_back(bgr[2]); else r.push_back(tmp); } merge(b,dst); imshow("b",dst); merge(g,dst); imshow("g",dst); merge(r,dst); imshow("r",dst); waitKey(); return 0;}

原圖:

b通道:

g通道:

r通道:


推薦閱讀:

你與完美、清晰和高對比度的圖像只差這三步
用圖像還原中國老民俗 年畫50年來增值百倍
探測器最新圖像表明 火星或曾發生過驚天核爆
【搞藝術-繪畫卷·先秦-秦漢繪畫】藝術的瑰寶 圖像的世界——中國美術史·先秦-秦漢繪畫(三)
新視野號探測器傳回最新冥王星圖像:7月抵達

TAG:學習 | 圖像 | 分離 | 彩色 |