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

How to transform a list (or numpy array or matrix) into an image?

我有一个巨大的 table(或者矩阵,如果你愿意的话)。我想通过制作一个图像来形象化这个 table,其中每个像素对应于 table 中的一个单元格(因此,table 中的行和列对应于 "rows" 和 "columns" 图像中的像素)。

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

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

您可以使用 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()