Python 3.x 如何将类型为bytes的图像转换为numpy.ndarray?
我正在尝试优化我的代码 首先,我得到一个图像,它的类型是字节 然后我必须将该图像写入文件系统Python 3.x 如何将类型为bytes的图像转换为numpy.ndarray?,python-3.x,numpy,scipy,Python 3.x,Numpy,Scipy,我正在尝试优化我的代码 首先,我得到一个图像,它的类型是字节 然后我必须将该图像写入文件系统 with open('test2.jpg', 'wb') as f: f.write(content) 最后,我读了这张图片 from scipy import misc misc.imread('test2.jpg') 将图像转换为np.array 我想跳过将图像写入文件系统的部分,并获取np.array p.S.:我尝试使用np.frombuffer()。这对我不起作用,因为两个np.a
with open('test2.jpg', 'wb') as f:
f.write(content)
最后,我读了这张图片
from scipy import misc
misc.imread('test2.jpg')
将图像转换为np.array
我想跳过将图像写入文件系统的部分,并获取np.array
p.S.:我尝试使用np.frombuffer()。这对我不起作用,因为两个np.array不一样。
对于测试,您可以自己尝试:
file = open('test1.jpg', 'rb')
content = file.read()
我的第一个回答是说唱 把那只小狗包起来 然后你就走了 因此,要生成一些类似于API的合成数据:
file = open('image.jpg','rb')
content = file.read()
看起来像这样,它具有JPEG的所有特征:
content = b'\xff\xd8\xff\xe0\x00\x10JFIF...
现在来看解决方案:
from io import BytesIO
from scipy import misc
numpyArray = misc.imread(BytesIO(content))
您能否提供创建内容的代码?内容是图像,类型是字节。我是通过API请求得到的。当你打印(内容)时,你会看到什么?像这样的东西\xac\x03\x86\ux8a\x04>\x83\xfe\xa2\xf2T\x0e\xb59\x14p\xc5A\xe7看看为什么不首先用
misc.imread()
打开原始文件?@DrBwts OP没有这个文件,他是从一些web API获取内容的-我想。