python - 无法将OpenCV图像拆分为RGB

原文 标签 python opencv imread

我试图将图像分割成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我甚至试过用不同的图片。

最佳答案

您正在向imshow发送一个频道绿色的那个这将显示为灰度你要做的是发送一个红色和蓝色通道设置为零的图像,以便“看到”它为绿色。
分裂的时候你做得对,你有红色,绿色和蓝色的通道是显示代码让您感到困惑,并将绿色通道显示为灰度。

    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)

相关文章:

ios - 在iOS上使用imread()

matlab - 写入在Matlab中给出不一致的错误

python - 遍历目录并基于Python扩展名删除文件

python - 如何将输入列表中的值插入数据库的表中?

python - Django:使用PIL,Amazon S3和Boto调整图像大小并上传

opencv - OpenCV检测到带有噪声的局部圆

python - PyDev eclipse没有显示编译错误

c++ - C ++突然阻止使用VideoCapture从IP摄像机读取帧

c++ - 从OpenCV Canny边缘检测器获取角度

c - 如何在MATLAB中使用fopen()和fread()替代imread()?