1.分离通道:
方法一:
#coding=utf-8
import cv2
import numpy as np
img = cv2.imread('./yy.jpg')
print img.shape #(691, 500, 3)
b = np.zeros((img.shape[0], img.shape[1]), dtype=img.dtype)
g = np.zeros((img.shape[0], img.shape[1]), dtype=img.dtype)
r = np.zeros((img.shape[0], img.shape[1]), dtype=img.dtype)
b[:, :] = img[:, :, 0]
g[:, :] = img[:, :, 1]
r[:, :] = img[:, :, 2]
print b.shape #(691, 500)
print g.shape #(691, 500)
print r.shape #(691, 500)
cv2.imshow("Blue", r)
cv2.imshow("Red", g)
cv2.imshow("Green", b)
cv2.waitKey(0)
cv2.destroyAllWindows()
方法二:
import cv2
import numpy as np
img = cv2.imread('./yy.jpg')
b, g, r = cv2.split(img)
print b.shape,g.shape,r.shape #(691, 500) (691, 500) (691, 500)
cv2.imshow("Blue", r)
cv2.imshow("Red", g)
cv2.imshow("Green", b)
cv2.waitKey(0)
cv2.destroyAllWindows() #b = cv2.split(img)[0] ,g = cv2.split(img)[1] ,r = cv2.split(img)[2]
2.合并通道
merged = cv2.merge([b,g,r]) #前面分离出来的三个通道
print merged.shape #(691, 500, 3)