如何将列表(或numpy数组或矩阵)转换为图像?

时间:2015-10-09 10:56:17

标签: python image numpy matplotlib data-visualization

我有一张巨大的桌子(或矩阵,如果你愿意的话)。我想通过制作一个图像来可视化这个表,其中每个像素对应于表格中的一个单元格(因此,表格中的行和列对应于"行"和#34;列&# 34;图像中的像素。)

单元格中的值已经与颜色对应(例如[255, 0, 0]是与红色对应的值)。换句话说,表格中的每个单元格都包含一个表示颜色的三维向量。

该表可以表示为列表列表或3D numpy数组。

1 个答案:

答案 0 :(得分:2)

您可以使用matplotlib's imshow功能执行此操作。您只需要将数组从0 - 255规范化为0 - 1,然后就可以向imshow数组提供MxNx3

这是一个简单的例子:

import matplotlib.pyplot as plt
import numpy as np

fig,ax=plt.subplots(1,subplot_kw={'aspect':'equal'})

# A small 3x3 sample array
imarray=np.array([
    [[255,0,0],[0,255,0],[0,0,255]],
    [[255,255,0],[0,255,255],[255,0,255]],
    [[255,255,255],[127,127,127],[0,0,0]]
    ])

# Normalise the data to between 0 and 1
imarray = imarray.astype('float')/255.

# plot the array
ax.imshow(imarray,interpolation='nearest')

plt.show()

enter image description here