_io.BufferedReader图片类型转化为numpy.ndarray格式

本文详细介绍如何将_io.BufferedReader读取的图片文件转化为numpy.ndarray格式,并进一步转换为RGB彩色图像。通过Python代码实现,从读取图片到转换为多通道numpy数组,涵盖了bytes到numpy.ndarray的关键步骤。特别关注cv2.imdecode()函数的应用,包括不同图像编码方式的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

_io.BufferedReader图片转化为numpy.ndarray格式

转化顺序为:_io.BufferedReader --> bytes --> 单通道numpy.ndarray --> 多通道numpy.ndarray
Python转化代码:

pic = open(path, mode='rb')
print('pic type:',type(pic))
data = pic.read()
print('data type:',type(data))
nparr = np.frombuffer(data, dtype=np.uint8)
print('nparr type:',type(nparr))
segment_data = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
print('segment_data type:',type(segment_data))

输出为:

pic type: <class '_io.BufferedReader'>
data type: <class 'bytes'>
nparr type: <class 'numpy.ndarray'>
segment_data type: <class 'numpy.ndarray'>

其中cv2.imdecode()函数内:

cv2.IMREAD_COLOR : 加载一张彩色图片,忽视它的透明度。
cv2.IMREAD_GRAYSCALE : 加载一张灰度图。
cv2.IMREAD_UNCHANGED : 加载图像,包括它的Alpha通道。

由于我转化的为rgb彩色图,所以 cv2.imdecode() 函数中使用 cv2.IMREAD_COLOR 图像编码方式。若转化灰度图或rgba样式的图像,使用其余两种图像编码方式即可。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值