【问题标题】:Set the size of imsave() image output设置 imsave() 图像输出的大小
【发布时间】:2013-05-26 00:26:42
【问题描述】:

我有一个形状为 15x30 的数组,并希望在 pylab 模式下将其保存为带有 imsave() 的伪彩色图。但是生成的输出图像的大小是 15x30px。我尝试设置 dpi 参数,但它没有帮助,这个函数也没有任何其他会改变图像大小的参数。

那么如何使用imsave() 从数组中保存伪彩色图像并更改输出图像的大小?

【问题讨论】:

  • 我不确定你到底想做什么。
  • matplotlib.org/api/… 如果您注意到文档中说“要存储在文件元数据中的 DPI。这不会影响输出图像的分辨率。'
  • @tcaswell: 取而代之的是 15x30,我想将图像输出为 150x300px 大小,这样每个数组值一个像素我得到每个数组值 10x10px,就像它显示在绘图窗口中一样,如果我使用 pcolor() .

标签: matplotlib


【解决方案1】:

一个非常老套的解决方案来扩大你的数据:

data = rand(10, 15)
new_data = np.zeros(np.array(data.shape) * 10)

for j in range(data.shape[0]):
    for k in range(data.shape[1]):
        new_data[j * 10: (j+1) * 10, k * 10: (k+1) * 10] = data[j, k]

imsave(new_data)

【讨论】:

  • :) 我希望(d) 有更简单的方法,无需重塑
  • 您可能想深入了解 PIL,或者在保存后使用 imagemagik。
  • 这是个好主意。这是 PIL oneliner:Image.fromarray(data).convert('RGB').resize((150, 300)).save('data.png')
  • @theta 您应该将其发布为答案。
  • 作为评论也很容易看到,加上.convert('RGB')似乎没有将图像从灰色转换为RGB,所以它还不完整。我从这里选择了 RGB 转换:stackoverflow.com/questions/4711880/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多