python图像切面替换_OpenCV python:cv2.split()vs在BGR图像中获取通道时切片

我想只获取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中的元素相等,维度和类也是相似的.为什么我不能使用简单的切片来获得其中一个频道?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值