【Opencv&Cpp】10 通道:RGB

本文介绍了OpenCV中用于图像通道处理的split、merge和mixChannels函数。通过split将BGR图像分离为单通道,分别显示蓝色、绿色和红色通道;使用merge将通道重新组合,并展示了如何通过置零其他通道来创建单色图像。此外,还解释了mixChannels进行通道交换的概念,提供了一个示例来说明其工作原理。
摘要由CSDN通过智能技术生成

split()   通道分离,把多通道转换成多个单通道即灰度状态(注意理解)

merge()  通道合并

mixChannels()   多通道混合

 

split分离

std::vector<Mat> mv;   //容器类型mat 
	split(image, mv);  //通道分离bgr

	imshow("蓝色", mv[0]);
	imshow("绿色", mv[1]);
	imshow("红色", mv[2]);
	imshow("原图", image);

 注意图片是BGR格式

merge合并

	Mat dst;	
	merge(mv, dst);
	imshow("合并各通道", dst);

 展示 单通道有色图片

因为单通道是不展示颜色的所以可以强行把多通道的其他两个通道进行置零然后融合

(255,255,255)---> (255,0,0)

就只有蓝色B通道具有数据

	mv[1] = 0;
	mv[2] = 0;
	merge(mv, dst);
	imshow("合并各通道", dst);

 mixChannels 通道混合(交换)

其中,索引对from_to[] = { 0, 2, 1, 1, 2, 0, }的含义为:
bgra的0通道复制到out[]的2通道,即bgr的0通道;
bgra的1通道复制到out[]的1通道,即bgr的1通道;
bgra的2通道复制到out[]的0通道,即bgr的2通道;
如图所示:

 

 如果是hsv格式同理,详情可以参考这位博主的博文  详解:4通道图像分割、HSV通道获取

 mixChannels(原图,张数,输出图,图的数量,交换方式,变换对数)

原图总通道数=输出图总通道数

如上面例子: 4=3+1

	int from_to[] = {1,0,0,2};
	mixChannels(&image, 1, &dst, 1, from_to, 2);
	imshow("通道混合", dst);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值