一、image中RGB通道提取,直接上代码很简单
import cv2
Import sys
import numpy as np
image = cv2.imread(sys.argv[1], cv2.IMREAD_COLOR)
b = image[:, :, 0]
g = image[:, :, 1]
r = image[:, :, 2]
也可以直接用opencv的split函数
(b, g, r) = cv2.split(image)
上面得到r g b是一维矩阵,要是直接cv2.imshow(“b”,b)的话,显示的是一张灰度图(值为0~255),如果要显示对应的颜色通道,还需要把另外的两个通道补0,如何做呢?
(1)可以使用cv2的merge函数,比如单独显示b通道,可以这样补:
image_b = cv2.merge([b, np.zeros(b.shape, np.uint8), np.zeros(b.shape, np.uint8)])
其中np.zeros(b.shape,np.uint8)表示创建一个和b矩阵维度一样,每个数据初始值的类型为uint8并且值为0的矩阵。
(2)还可以使用numpy中提供的dstack函数来实现:
image_b = np.dstack((b, np.zeros(b.shape, np.uint8), np.zeros(b.shape, np.uint8)))
numpy提供了很多矩阵合并的计算函数。比如:
np.append()
np.concaten

最低0.47元/天 解锁文章
1690

被折叠的 条评论
为什么被折叠?



