【问题标题】:How to split colour channels in openCV without returning a gray scale image? I have tried the following it returns a gray scale image如何在openCV中拆分颜色通道而不返回灰度图像?我尝试了以下它返回灰度图像
【发布时间】:2019-03-01 09:07:42
【问题描述】:

如何在openCV中分割颜色通道而不返回灰度图像?我尝试了以下它返回灰度图像?

import cv2
import numpy as np

img = cv2.imread("1.jpeg")
(channel_b, channel_g, channel_r) = (img[:,:,0], img[:,:,1], img[:,:,2])

cv2.imshow('red',channel_b)
cv2.waitKey(0)
cv2.destroyAllWindows()

【问题讨论】:

  • 添加两个“全黑”通道

标签: python-3.x image numpy computer-vision opencv3.0


【解决方案1】:

问题是,单独的通道并没有真正分配颜色。

如果您使用 imshow 显示尺寸为 (m, n, 3) 的图像,该方法假定 3 个通道代表 R、G 和 B。但是,如果它获取尺寸为 (m, n, 1)(m, n) 的图像,它假定图像中没有颜色,显示为灰度。

总之,这意味着您的通道分离没有任何问题,imshow 只是不知道channel_r 中的值是图像的红色部分。

如果你真的想只显示红色部分,你可以这样做:

red = np.zeros(img.shape)
red[:,:,2] = img[:,:,2]

cv2.imshow('red', red)

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2020-01-27
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多