11 OpenCV通道分离与合并

11 通道分离与合并

opencv知识点:

  • 通道分离 - split()
  • 通道合并 - merge()
  • 通道混合 - mixChannels()

本课所解决的问题:

  • 如何分离RGB三通道?
  • 如何合并RGB三通道?
  • 如何对通道进行混合?

1.RGB三通道的解释

彩色图像,是由RGB三个通道合并起来得到的。

如果R,G,B分离,它们就分别对应一个单通道图像(因为都是单通道,所以为灰度图像)
当然,这三个单通道图像再经过合并,就会恢复成原本的彩色图像了

下图中间的R,G,B图,并不是分离,而是3通道中其他两个通道置0了 。
这时,如果再通过BGR2GRAY转换色彩空间,就可以得到对应的单通道图像。

11 OpenCV通道分离与合并_第1张图片

2.通道分离

分离通道要用到split
根据文档,我们有两种分离方式

第一种方式

//函数定义
void channels_demo(Mat& image);

//函数实现—
void QuickDemo::channels_demo(Mat& image) {
   

	Mat mvt[3];
	/*
	第一种方式
		通过创建图像数组,存储每个单通道图像
	*/
	split(image, mvt);

	imshow("蓝色单通道", mvt[0]);
	imshow("绿色单通道", mvt[1]);
	imshow("蓝色单通道", mvt[2]);
}

第二种方式

void QuickDemo::channels_demo(Mat& image) {
   

	std::vector<Mat> mvt;
	/*
	第二种方式
		通过创建动态数组,存储每个单通道图像
	*/
	split(image, mvt);

	imshow("蓝色单通道", mvt[0]);
	imshow("绿色单通道", mvt

你可能感兴趣的:(OpenCV,opencv,人工智能,计算机视觉)