Numpy 将二维阵列(灰度图像)转换为三维阵列(rgb图像)

Numpy 将二维阵列(灰度图像)转换为三维阵列(rgb图像),numpy,Numpy,我有一个灰度图像作为2d numpy数组。我想把它转换成RGB图像作为3d numpy阵列 RGB颜色是随机产生的 import numpy as np data = np.random.randint(low=0, high=255, size=(25, 25)) uniq_data = np.unique(data) print (uniq_data) colors = np.random.randint(low=0, high=255, size=(len(uniq_data), 3))

我有一个灰度图像作为2d numpy数组。我想把它转换成RGB图像作为3d numpy阵列

RGB颜色是随机产生的

import numpy as np
data = np.random.randint(low=0, high=255, size=(25, 25))
uniq_data = np.unique(data)
print (uniq_data)

colors = np.random.randint(low=0, high=255, size=(len(uniq_data), 3))

result = ?
我想不出怎么做

我需要为唯一的数据设置唯一的颜色(RGB值)。
输出形状为(25,25,3)。

制作一个查找表并通过高级索引使用它:

lookup = np.zeros((255,3),dtype=np.uint8)
lookup[uniq_data] = colors
rgb = lookup[data]

np.random.randint(…,size=(25,25,3))
@MarkSetchell这将是预期的结果形状。但是,如何通过为唯一的数据指定唯一的颜色(RGB值)将真实的
数据
转换为该形状?它起作用了,但无法理解如何进行?什么是
255
?@Col我不明白。“255是什么意思?”?不管怎样,也许从阅读开始,我的意思是,为什么
np.zero((255,3)
?有
255
@Col对不起,我还是不明白。3代表rgb,255代表255灰度。你是想创建256吗?你必须输入high=256。