![OpenCV轻松入门:面向Python(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/266/47382266/b_47382266.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.5.2 通道合并
通道合并是通道拆分的逆过程,通过合并通道可以将三个通道的灰度图像构成一幅彩色图像。函数cv2.merge()可以实现图像通道的合并,例如有B通道图像b、G通道图像g和R通道图像r,使用函数cv2.merge()可以将这三个通道合并为一幅BGR的三通道彩色图像。其实现的语句为
![](https://epubservercos.yuewen.com/D41D8C/26766203101053706/epubprivate/OEBPS/Images/txt002_64.jpg?sign=1739195536-mpiDK9lk3Qs5JGWD0r03zUpFzEVLuxcM-0-1620c81b763661f5eb6e6e36901167c6)
【例2.18】编写程序,演示使用函数cv2.merge()合并通道。
根据题目要求,编写代码如下:
![](https://epubservercos.yuewen.com/D41D8C/26766203101053706/epubprivate/OEBPS/Images/txt002_65.jpg?sign=1739195536-KhFeyP97goCXC1SbUKKOSLKqtgAfHLEP-0-e18fcb8f542d0fa7a737501c679723d9)
在本例中,首先对BGR图像进行了拆分,接下来又对其进行了两种不同形式的合并。
● 语句b,g,r=cv2.split(lena)对图像lena进行拆分,得到b、g、r这三个通道。
● 语句bgr=cv2.merge([b,g,r])对通道b、g、r进行合并,合并顺序为B通道→G通道→R通道,得到图像bgr。
● 语句rgb=cv2.merge([r,g,b])对通道r、g、b进行合并,合并顺序为R通道→G通道→B通道,得到图像rgb。
运行上述程序,得到如图2-23所示的图像,其中:
● 图2-23(a)是原始图像lena。
● 图2-23(b)是lena图像经过通道拆分、合并后得到的BGR通道顺序的彩色图像bgr。
● 图2-23(c)是lena图像经过通道拆分、合并后得到的RGB通道顺序的彩色图像rgb。
![](https://epubservercos.yuewen.com/D41D8C/26766203101053706/epubprivate/OEBPS/Images/txt002_66.jpg?sign=1739195536-zCLPiLjT2qdk2vkQYHXIMdR3pE7K8OO8-0-7e11cd706f194b34e986c1dda2358472)
图2-23 【例2.18】程序的运行结果
通过本例可以看出,改变通道顺序后,图像显示效果会发生变化。