如何將R、G、B通道3附圖merge為一幅彩色圖
阿新 • • 發佈:2018-12-03
#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; }