如何将字节类型的图像转换为numpy.ndarray?

时间:2019-04-02 10:41:52

标签: 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。

PS :我尝试使用np.frombuffer()。它对我不起作用,因为两个np.arrays不同。 Convert str to numpy.ndarray

要进行测试,您可以尝试一下自己:

file = open('test1.jpg', 'rb')
content = file.read()

1 个答案:

答案 0 :(得分:1)

我在说唱中的第一个答案...

  

将那只小狗包裹在BytesIO中

     

然后离开

因此,要生成一些类似于您从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))