【问题标题】:How to convert the numpy.ndarray data to required image format?如何将 numpy.ndarray 数据转换为所需的图像格式?
【发布时间】:2019-11-21 05:48:00
【问题描述】:

我有一个 numpy.ndarray 格式的数据,例如 [45 42 35 ... 53 29 31](1x3072 numpy array of uint8s) 数组的哪一行存储了 32x32 彩色图像。前 1024 个条目包含红色通道值,接下来的 1024 个为绿色,最后的 1024 个为蓝色。

我想将该 ndarray 图像转换为 jpg 格式的 32x32 彩色图像。 尝试了很多选项,但似乎没有创建有效/正确的图像。

有什么建议可以把图片转换成 32x32 的形状吗?

from PIL import Image
import numpy as np

img_data=[45 42 35 ... 53 29 31] 
data_2 = np.resize(img_data,(32,32,3))
img = Image.fromarray(data_2,'RGB')
img.save('./my.png')

【问题讨论】:

  • 你试过shape(3, 32, 32)吗?您的数据可能是 channels first 格式
  • 是的,试过了,但图像不可见,似乎只有一条水平线

标签: python image numpy-ndarray


【解决方案1】:

这个?

from PIL import Image
import numpy as np

img_data=[45 42 35 ... 53 29 31] 
data_2 = np.swapaxes(np.resize(img_data,(3,32,32)),0, 2)
img = Image.fromarray(data_2,'RGB')
img.save('./my.png')

【讨论】:

  • 谢谢,它正在工作并创建了一个有效的图像,但只有一个问题只需要向右旋转一次。那么就完美了。
猜你喜欢
  • 2017-09-06
  • 2022-12-03
  • 2021-04-25
  • 2021-12-05
  • 2023-04-01
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
相关资源
最近更新 更多