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

_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样式的图像,使用其余两种图像编码方式即可。


版权声明:本文为qq_32188669原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。