繁体   English   中英

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

[英]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中拆分颜色通道而不返回灰度图像? 我已经尝试了以下它返回灰度图像?

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()

事实是,单独的通道实际上没有分配颜色。

如果使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM