opencv 学习笔记6:通道的拆分与合并

python + opencv

通道拆分

原始方法
import cv2
img=cv2.imread(‘图像名’)
b=img[:,:,0]
g=img[:,:,`1]
r=img[:,:,2]

新的方法
import cv2
img=cv2.imread(‘图像名’)
b,g,r=img.split(img)

import cv2
import numpy as np
img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变
b,g,r=cv2.split(img)
cv2.imshow("b",b)
cv2.imshow("g",g)
cv2.imshow("r",r)
cv2.waitKey(0)
cv2.destroyAllWindows()


可以只拆分一个通道
添加下标,0,1,2
b=cv2.split(img)[0]

通道合并

方法:cv2.merge([b,g,r])

算例
使用不同顺序合并,结果不同。

import cv2
import numpy as np
img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变
b,g,r=cv2.split(img)
bgr=cv2.merge([b,g,r])
rgb=cv2.merge([r,g,b])
cv2.imshow("bgr",bgr)
cv2.imshow("rgb",rgb)
cv2.waitKey()
cv2.destroyAllWindows()


让b通道去合并两个0的通道

import cv2
import numpy as np
img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变
rows,cols,chn=img.shape
b=cv2.split(img)[0]
g = np.zeros((rows,cols),dtype=img.dtype)
r = np.zeros((rows,cols),dtype=img.dtype)
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()

结果:
opencv 学习笔记6:通道的拆分与合并_第1张图片
同理,只取g通道,另外两个为0。得到的应是纯绿 和纯红

总目录链接:
python3+opencv学习笔记汇总目录(适合基础入门学习)

电气专业的计算机小白。写博文不容易。如果你觉得本文对你有用,请点个赞支持下,谢谢。

opencv 学习笔记6:通道的拆分与合并_第2张图片

你可能感兴趣的:(CV计算机视觉)