Opencv+Python学习记录4:通道操作(通道拆分和通道合并)(内附详细代码)

一,通道拆分

1.通过索引拆分

#1.通过索引拆分
b=girl[:,:,0]#获取了img的B通道
g=girl[:,:,1]#获取了img的G通道
r=girl[:,:,2]#获取了img的R通道

示例:编写程序,演示图像通道拆分及通道值改变对彩色图像的影响 

# 编写程序,演示图像通道拆分及通道值改变对彩色图像的影响
import cv2
girl=cv2.imread("girl.png")#原始图像
cv2.imshow("girl1",girl)
b=girl[:,:,0]#获取了img的B通道
g=girl[:,:,1]#获取了img的G通道
r=girl[:,:,2]#获取了img的R通道
cv2.imshow("b",b)#原始图像的B通道图像b
cv2.imshow("g",g)#原始图像的G通道图像g
cv2.imshow("r",r)#原始图像的R通道图像r
girl[:,:,0]=0#将图像的B通道值设置为0
cv2.imshow("girlb0",girl)#原始图像的B通道值置为0得到的图像
girl[:,:,1]=0#将图像的G通道值设置为0
cv2.imshow("girlb0g0",girl)#原始图像的B,G通道值置为0得到的图像
cv2.waitKey()
cv2.destroyAllWindows()

结果:

 

2.通过函数拆分

# 2.通过函数拆分
# b,g,r=cv2.split(img)
# 等价于
# b=cv2.split(a)[0]
# g=cv2.split(a)[1]
# r=cv2.split(a)[2]
# 编写程序,使用函数cv2.split()拆分图像通道

 示例: 编写程序,使用函数cv2.split()拆分图像通道

# 编写程序,使用函数cv2.split()拆分图像通道
import cv2
girl=cv2.imread("girl.png")
b,g,r=cv2.split(girl)
cv2.imshow("B",b)
cv2.imshow("G",g)
cv2.imshow("R",r)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

 二,通道合并

# 通道合并
# bgr=cv2.merge([b,g,r])
#此处合并顺序为:B通道—>G通道—>R通道

 示例:编写程序,演示使用函数cv2.merge()合并通道

import cv2
girl=cv2.imread("girl.png")
b,g,r=cv2.split(girl)
bgr=cv2.merge([b,g,r])#合并顺序为:B通道—>G通道—>R通道
rgb=cv2.merge([r,g,b])#合并顺序为:R通道—>G通道—>B通道
cv2.imshow("girl",girl)
cv2.imshow("bgr",bgr)
cv2.imshow("rgb",rgb)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

 三,附录

本次使用的样例图片~

 


版权声明:本文为qq_53914247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。