0

我想将 64x64 单元阵列转换为 64x64 像素图像。使用 matplotlib 和 pylab 我最终得到了大约 900x900 的图像,额外的像素被混合在一起。

py.figure(1)
py.clf()
py.imshow( final_image , cmap='Greys_r' )

如何以 1:1 的比例从单元格转换为像素?(如果你还不能说,我对此很陌生)。

4

1 回答 1

0

这是使用 PIL 创建图像 2x2 的示例。a 是大小为 4 的颜色数组(平面)

from PIL import Image

a = [(0, 0, 0), (255, 0, 0), (0, 255, 0), (0, 0, 255)]

#  Create RGB image with size 2x2
img = Image.new("RGB", (2, 2))
#  Save it to the new function
img.putdata(a)
#  Save to the file
img.save('1.png')

当然,如果数据不平坦,您应该将其调整为数据格式。不过这应该很容易。例如,此脚本将二维列表中的数据展平:

a = [[[1, 2, 3], [2, 3, 4]], [[5, 6, 7], [8, 9, 10]]]
a = [tuple(color) for row in a for color in row]
print a

如果您正在处理 numpy 数组而不是列表,则应使用函数 fromarray (以下列方式):

#  data is numpy array
img = Image.fromarray(data, 'RGB')
#  Save to the file
img.save('1.png')

请注意,强烈建议使用 numpy 数组,因为它只是包装了 C 数组,因此它们的速度更快。

于 2016-08-11T16:25:41.143 回答