如何在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()
答案 0 :(得分:0)
问题是,单独的通道实际上没有分配颜色。
如果使用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)