1. 程式人生 > >如何將R、G、B通道3附圖merge為一幅彩色圖

如何將R、G、B通道3附圖merge為一幅彩色圖

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include"opencv2/opencv.hpp"
using namespace std;
using namespace cv;

int main(int argc,char* argv[])
{
		
		Mat image=imread("逐幀人臉B_4*4_result_00.jpg");
		Size s=image.size();
		Mat result= Mat::zeros(s, CV_32FC3);


		Mat imageGreenChannel = imread("逐幀人臉G_4*4_result_00.jpg");
		Mat imageRedChannel = imread("逐幀人臉R_4*4_result_00.jpg");
		Mat imageBlueChannel = imread("逐幀人臉B_4*4_result_00.jpg");
		//這個函式將rgb轉為單通道影象,這一步必不可少
		cvtColor(imageBlueChannel, imageBlueChannel, CV_BGR2GRAY); 
		cvtColor(imageGreenChannel, imageGreenChannel, CV_BGR2GRAY); 
		cvtColor(imageRedChannel, imageRedChannel, CV_BGR2GRAY);

		 vector<Mat> mbgr(3); 
		 mbgr[0] = imageBlueChannel; 
		 mbgr[1] = imageGreenChannel; 
		 mbgr[2] = imageRedChannel; 
		 merge(mbgr, result);
		imshow("逐幀人臉彩色_4*4_result.jpg",result);
		imwrite("逐幀人臉彩色_4*4_result.jpg",result);
		waitKey(0);
		return 0;
}