三:通道操作
1拆分通道

import cv2
img=cv2.imread('图像名')
b = img[ : , : , 0 ]
g = img[ : , : , 1 ]
r = img[ : , : , 2 ]
import cv2
img=cv2.imread('图像名')
b , g , r = cv2.split(img)
import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
b,g,r=cv2.split(a)
cv2.imshow("B",b)
cv2.imshow("G",g)
cv2.imshow("R",r)
cv2.waitKey()
cv2.destroyAllWindows()

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
b=cv2.split(a)[0]
g=cv2.split(a)[1]
r=cv2.split(a)[2]
2合并通道

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
b,g,r=cv2.split(a)
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
b,g,r=cv2.split(a)
bgr=cv2.merge([b,g,r])
rgb=cv2.merge([r,g,b])
cv2.imshow("bgr",bgr)
cv2.imshow("rgb",rgb)
cv2.waitKey()
cv2.destroyAllWindows()

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
rows,cols,chn=a.shape
b=cv2.split(a)[0]
g = np.zeros((rows,cols),dtype=a.dtype)
r = np.zeros((rows,cols),dtype=a.dtype)
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
rows,cols,chn=a.shape
b= np.zeros((rows,cols),dtype=a.dtype)
g = cv2.split(a) [1]
r = np.zeros((rows,cols),dtype=a.dtype)
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
rows,cols,chn=a.shape
b = np.zeros((rows,cols),dtype=a.dtype)
g = np.zeros((rows,cols),dtype=a.dtype)
r = cv2.split(a) [2]
m = cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()

视频代码:
#视频 通道拆分
import cv2
img=cv2.imread("lenacolor.png",-1)
b,g,r=cv2.split(img)
cv2.imshow("yuanshi",img)
cv2.imshow("B",b)
cv2.imshow("G",g)
cv2.imshow("R",r)
cv2.waitKey()
cv2.destroyAllWindows()
#合并
import cv2
img=cv2.imread("lenacolor.png",-1)
b,g,r=cv2.split(img)
# m=cv2.merge([b,g,r])#正确的合并
#错误的合并举例
m=cv2.merge([r,g,b])#错误的合并
cv2.imshow("yuanshi",img)
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()
#B G R 其中单一通道和0合并
import cv2
import numpy as np
img=cv2.imread("lenacolor.png",-1)
rows,cols,chn=img.shape
#G R通道为0
b=cv2.split(img)[0]
g=np.zeros((rows,cols),img.dtype)
r=np.zeros((rows,cols),img.dtype)
#B R通道为0
# b=np.zeros((rows,cols),img.dtype)
# g=cv2.split(img)[1]
# r=np.zeros((rows,cols),img.dtype)
#B G通道为0
# b=np.zeros((rows,cols),img.dtype)
# g=np.zeros((rows,cols),img.dtype)
# r=cv2.split(img)[2]
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()
#2.16编写程序,演示图像通道拆分及通道值改变对彩色图像的影响
# import cv2
# lena=cv2.imread("lenacolor.png")
# cv2.imshow("lena1",lena)
# b=lena[:,:,0]
# g=lena[:,:,1]
# r=lena[:,:,2]
# cv2.imshow("b",b)
# cv2.imshow("g",g)
# cv2.imshow("r",r)
# lena[:,:,0]=0
# cv2.imshow("lenab0",lena)
# lena[:,:,1]=0
# cv2.imshow("lenab0g0",lena)
# # lena[:,:,2]=0
# # cv2.imshow("lenab0g1",lena)
# cv2.waitKey()
# cv2.destroyAllWindows()
#2.17 编写程序,使用函数cv2.split()拆分图像通道
# import cv2
# lena=cv2.imread("lenacolor.png")
# b,g,r=cv2.split(lena)
# cv2.imshow("B",b)
# cv2.imshow("G",g)
# cv2.imshow("R",r)
# cv2.waitKey()
# cv2.destroyAllWindows()
#2.18编写程序,演示使用函数cv2.merge()合并通道
# import cv2
# lena=cv2.imread("lenacolor.png")
# b,g,r=cv2.split(lena)
# bgr=cv2.merge([b,g,r])
# rgb=cv2.merge([r,g,b])
# cv2.imshow("lena",lena)
# cv2.imshow("bgr",bgr)
# cv2.imshow("rgb",rgb)
# cv2.waitKey()
# cv2.destroyAllWindows()
#2.19编写程序,观察图像的常用属性值
# import cv2
# gray=cv2.imread("lena.bmp",0)
# color=cv2.imread("lenacolor.png")
# print("图像gray属性:")
# print("gray.shape=",gray.shape)
# print("gray.size=",gray.size)
# print("gray.dtype=",gray.dtype)
# print("图像color属性:")
# print("color.shape=",color.shape)
# print("color.size=",color.size)
# print("color.dtype=",color.dtype)

