如何复制具有多个通道的图像?

时间:2019-06-08 23:17:57

标签: python opencv

我正在通过python使用opencv2。我正在尝试复制YCrCb格式的图像,但它仅复制Cb通道

我通过打印复制图像的形状检查了通道数,它仍然是3个通道,只是颜色只有Cb

img = cv.imread('C:\\Users\\Anon\\Pictures\\CV\\IMAG1227\\pryramid_4.bmp')

print(img.shape)
for x in range(0, 2):
    img = cv.pyrDown(img)

YCrCb_img = cv.cvtColor(img, cv.COLOR_BGR2YCrCb)


height, width, channel = YCrCb_img.shape

print(YCrCb_img.shape)

copy = YCrCb_img.copy()
    print(copy.shape)

cv.imwrite('C:\\Users\\Anon\\Pictures\\CV\\IMAG1227\\YCr_CB_copyTest.bmp', copy)

所得到的图像颜色看起来与下图中的Cb图片相同 i

返回的形状是

print(YCrCb_img.shape) =>(300,400,3)

print(copy.shape) =>(300,400,3)

1 个答案:

答案 0 :(得分:0)

要访问单个频道,请使用cv2.split()函数

喜欢这里

YCrCb_img = cv.cvtColor(img, cv.COLOR_BGR2YCrCb)
y,cr,cb = cv.split(YCrCb_img)

现在分别检查y,cr,cb的形状,您将得到结果,因为您猜测我没有记错。

print(y.shape)