【问题标题】:How do I output a numpy array as an image through webpy?如何通过 webpy 将 numpy 数组输出为图像?
【发布时间】:2014-09-10 03:48:54
【问题描述】:

我正在尝试遵循文档here,但是当我执行以下操作时:

web.header('Content-type', 'image/png')
buf = StringIO.StringIO()
scipy.misc.imsave(buf, my_numpy_data, format='png')
return buf.getvalue()

我收到以下错误:

TypeError: imsave() got an unexpected keyword argument 'format'

格式参数的有效值是什么?我尝试了'png'、'PNG'、'image/png'。是否有另一种简单的方法可以从 numpy 数组中执行相同的操作?

【问题讨论】:

  • 您使用的 SciPy 版本是什么? help(scipy.misc.imsave) 告诉你什么?
  • 我在尝试定义格式时遇到了同样的错误。它是一个错误吗?任何标准的解决方案来定义格式并使用自定义文件名保存图像?

标签: python image numpy scipy


【解决方案1】:

我终于通过使用 PIL 中的 Image 对象解决了这个问题。我用了一个小函数来转换:

def array2PIL(data):
  mode = 'RGB'
  size = data.shape[1],data.shape[0]
  return Image.frombuffer(mode, size, data.tostring(), 'raw', mode, 0, 1)

然后像这样使用它:

web.header('Content-type', 'image/png')
buf = StringIO.StringIO()
img = array2PIL(my_numpy_data)
img.save(buf,format='PNG')
return buf.getvalue()

【讨论】:

    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2018-03-21
    • 2018-07-21
    • 2023-03-17
    • 1970-01-01
    • 2010-09-27
    相关资源
    最近更新 更多