本格的に画像処理を始めるにあたり、画像の色のチャンネルの扱い方を確認しておきます。特定のチャンネルのみ操作したいという時に、取り出して、書き込むというケースなどで利用できます。
画像をBGRのチャンネルに分割
(b, g, r) = cv2.split(image)
BGRのチャンネルからもう一度画像にする
image_2 = cv2.merge((b, g, r))
特定のチャンネルのみを取得
r = image[:, :, 2]
サンプルコード
import cv2
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10.0, 10.0))
image = cv2.imread("image.png", 1)
(b, g, r) = cv2.split(image)
zeros = np.zeros(image.shape[:2], dtype="uint8")
plt.subplot(2, 3, 4)
plt.imshow(cv2.merge([b, zeros, zeros]))
plt.subplot(2, 3, 5)
plt.imshow(cv2.merge([zeros, g, zeros]))
plt.subplot(2, 3, 6)
plt.imshow(cv2.merge([zeros, zeros, r]))
plt.subplot(2, 3, 1)
plt.imshow(cv2.merge([b, g, r]))
plt.show()