Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用多个通道复制图像?_Python_Opencv - Fatal编程技术网

Python 如何使用多个通道复制图像?

Python 如何使用多个通道复制图像?,python,opencv,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(

我正在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图片相同

返回的形状是

打印(YCrCb\u img.shape)
=>(3004003)


打印(copy.shape)
=>(300、400、3)

为了访问单个通道,请使用cv2.split()函数

像这里

YCrCb_img = cv.cvtColor(img, cv.COLOR_BGR2YCrCb)
y,cr,cb = cv.split(YCrCb_img)
现在分别检查y,cr,cb的形状,如果我没有错的话,你会得到你猜的结果

print(y.shape)

您知道Cb和Cr通道是伪彩色的,并单独保存,对吗?您正在转换整个映像并将该映像保存到磁盘。维基百科上的图片分别显示了每个频道。