如何从 RGB 图像中提取单个通道

Da *_*Nio 6 python opencv signal-processing image image-processing

我发现 opencv 文档使用 cv2.split (img) 命令从 RGB 图像中提取单个通道,但它并没有真正返回所选通道的图像。它们看起来都像灰度。有人能帮我吗?我附上照片。

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

or

b,g,r = cv2.split(img)
Run Code Online (Sandbox Code Playgroud)

起始图像 = 在此处输入图片说明 红色通道提取= 在此处输入图片说明

这是正确的提取吗?全红色通道-img在哪里?

nat*_*ncy 7

提取的红色通道可能看起来像灰度图像,但它是正确的。它只是一个二维数组,其值在范围内[0,255]。要可视化特定通道,您需要将其他通道设置为零。因此,要显示红色通道,蓝色和绿色通道需要设置为零。

import cv2

img = cv2.imread('1.jpg')

# Set blue and green channels to 0
img[:,:,0] = 0
img[:,:,1] = 0

cv2.imshow('red_img', img)
cv2.waitKey()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述