如何将列表(或 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()
我有一个巨大的 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()