opencv——分离颜色通道和多通道颜色组合

利用split和merge两个函数数,借助于vector向量类型的channel来实现图像多通道的分离和组合:

#include<cv.h>
#include<highgui.h>
#include<iostream>
#include<vector>
using namespace cv;
using namespace std;


int main()
{
	vector<Mat> imagechannel;
	Mat im = cv::imread("C:\\Users\\Administrator\\Desktop\\3.jpg");
	 split( im, imagechannel);
	Mat Gm = imagechannel.at(0);
	Mat Rm = imagechannel.at(1);
	Mat Bm = imagechannel.at(2);
	namedWindow("channels");
	imshow("channels",Rm);
	Mat result_image;
	Mat blank_ch = cv::Mat::zeros(cv::Size(im.cols, im.rows), CV_8UC1);
	vector<Mat>channel_r;
	channel_r.push_back(blank_ch);
	channel_r.push_back(blank_ch);
	channel_r.push_back(Rm);
	merge(channel_r, result_image);
	imshow("r_channel",result_image);
	waitKey(0);
}

猜你喜欢

转载自blog.csdn.net/feiyanjia/article/details/81315657
今日推荐