我想将每个 numpy 数组映射到一种颜色以创建图像。
例如:如果我有 numpy 数组:
[ [0 0 1 3]
[0 2 4 5]
[1 2 3 6] ]
我想通过将所有低于 3 的值映射为蓝色来制作图像
[ [blue blue sky-blue green]
[blue sky-blue green green]
[blue sky-blue green green]
最佳答案
您可以制作双色彩色图。然后根据您的条件创建一个包含 1 或 0 的数组,并将两者传递给 pyplot.imshow()
:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.colors import ListedColormap
# white and blue
color = ListedColormap([(1,1,1), (0,0,1)])
a = np.array([
[0, 0, 1, 3],
[0, 2, 4, 5],
[1, 2, 3, 6]
])
plt.axis('off')
plt.imshow(a < 3, cmap=color)
关于python - 如何在 python 中从 numpy 数组制作图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72021614/