通道的拆分与合并

1. 拆分
第一种方法

b=img[:,:,0]
g=img[:,:,1]
r=img[:,:,2]

第二种方法

b,g,r=split(image)
b=split(image)[0]
g=split(image)[1]
r=split(image)[2]

2. 合并
merge([b,g,r]) 这是正确还原图的通道顺序
顺序不同 结果不同

将RGB图像通道拆分 然后再合并。通过运行结果 可以发现 通道拆分的r图 g图 b图 均是灰度图像 合并顺序不一致 结果不一致

import cv2
import numpy as np
a=cv2.imread('F:\\Pycharm Project\\image\\1.jpg',cv2.IMREAD_UNCHANGED)
b,g,r=cv2.split(a)              #拆分通道
cv2.imshow('original',a)        
cv2.imshow('B',b)               
cv2.imshow('G',g)
cv2.imshow('R',r)
m1=cv2.merge([b,g,r])          #按照bgr合并通道
m2=cv2.merge([g,b,r])          #按照gbr合并通道
cv2.imshow('result1',m1)
cv2.imshow('result2',m2)
cv2.waitKey()
cv2.destroyAllWindows()

运行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

若是将通道b,g,r图片分别于两个0通道合并 结果怎样? 从结果可以看出,b与两个0通道合并 结果为蓝色 同理g与两个0通道合并 结果为绿色 r与两个0通道合并 结果为红色

import cv2import numpy as np
a=cv2.imread('F:\\Pycharm Project\\image\\1.jpg',cv2.IMREAD_UNCHANGED)
rows,cols,chn=a.shape
b=cv2.split(a)[0]
g=np.zeros((rows,cols),a.dtype)
r=np.zeros((rows,cols),a.dtype)
m=cv2.merge([b,g,r])
cv2.imshow('result',m)
cv2.waitKey()
cv2.destroyAllWindows()

运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sundanping_123/article/details/86237412