无法将opencv图像拆分为RGB

Unable to split opencv image to RGB

我正在尝试将图像拆分为 B,G,R,但拆分后,每个 B G & R 都有灰度图像。

import cv2
import numpy as np

image = cv2.imread('/path/image.jpg') #I have tried using CV_LOAD_IMAGE_COLOR flag as well as 1
#however,image is read as color image. It is not a grayscale image

b,g,r = cv2.split(image)
#[b,g,r]=np.dsplit(image,image.shape[-1])
#b,g,r = cv2.split(image)
#b = image[:,:,0]
#g = image[:,:,1]
#r = image[:,:,2]

#none of the above worked

cv2.imshow("green",g)
cv2.waitKey(0)
cv2.destroyAllWindows()

请帮我把图片拆分成BGR。我什至尝试过使用不同的图像。

分割时,每张图片都是单通道图片。由于它们是单通道图像,当您使用 cv2.imshow(g) 时,它们看起来像灰度图像。但请放心,通道已正确拆分。

通常,在 BGR 图像中,每个通道看起来几乎 与 BGR 图像完全一样,这可能是您感到困惑的地方。

您正在向 imshow 发送一个频道。绿色那个。这将显示为灰度。你想要做的是发送一张红色和蓝色通道设置为零的图像,以便"see"它为绿色。

你分裂的时候做得对,你有红绿蓝通道。是显示代码把你搞糊涂了,把绿色通道显示成灰度。

    import numpy as np
    import cv2

    image = np.random.rand(200, 200, 3)
    b, g, r = cv2.split(image)
    cv2.imshow('green', g)
    cv2.waitKey(0)

    black = np.zeros((200, 200, 3))
    black[:, :, 1] = g # Set only green channel
    cv2.imshow('green', black)
    cv2.waitKey(0)