Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何将类型为bytes的图像转换为numpy.ndarray?_Python 3.x_Numpy_Scipy - Fatal编程技术网

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获取内容的-我想。