我想只获取BGR图像中的第一个通道(蓝色),然后将其保存到磁盘.
当我使用cv2.split()时一切正常
>>> import cv2
>>> a = cv2.imread("/home/s18/theVIDEO/1_resized.jpg")
>>> b = cv2.split(a)[0]
>>> type(b)
>>> b
array([[223, 222, 224, ..., 88, 80, 71],
[222, 221, 225, ..., 84, 78, 67],
[220, 221, 225, ..., 77, 71, 62],
...,
[163, 178, 182, ..., 107, 107, 106],
[148, 170, 186, ..., 104, 104, 103],
[156, 181, 201, ..., 102, 101, 100]], dtype=uint8)
>>> b.shape
(600, 800)
>>> cv2.imwrite("/home/s18/theVIDEO/1_resized2.jpg", b)
True
但是在使用模拟切片操作时,我会收到错误
>>> c = a[:,:,0]
>>> c
>>> type(c)
array([[223, 222, 224, ..., 88, 80, 71],
[222, 221, 225, ..., 84, 78, 67],
[220, 221, 225, ..., 77, 71, 62],
...,
[163, 178, 182, ..., 107, 107, 106],
[148, 170, 186, ..., 104, 104, 103],
[156, 181, 201, ..., 102, 101, 100]], dtype=uint8)
>>> c.shape
(600, 800)
>>> cv2.imwrite("/home/s18/theVIDEO/1_resized3.jpg", c)
False
数组b和c中的元素相等,维度和类也是相似的.为什么我不能使用简单的切片来获得其中一个频道?