我正在尝试将亮度(N x M x 1阵列)转换为rgb阵列(N x M x 3)。
我们的想法是使用rgb数组来获取imshow()
的rgba数组。我正在寻找的结果与我将亮度数组馈送到imshow()
的结果相同,但它让我可以控制alpha。是否有一些简单的功能来执行此操作?
答案 0 :(得分:2)
您可以在matplotlib中使用一些有用的东西来实现您想要的效果。
您可以轻松获取一组数字,并给出适当的规范化和色彩映射,将其转换为rgba值:
import matplotlib.pyplot as plt
# define a norm which scales data from the range 20-30 to 0-1
norm = plt.normalize(vmin=20, vmax=30)
cmap = plt.get_cmap('hot')
有了这些,你可以做一些有用的东西:
>>> # put data in the range 0-1
>>> norm([20, 25, 30])
masked_array(data = [ 0. 0.5 1. ],
mask = False,
fill_value = 1e+20)
# turn numbers in the range 0-1 into colours defined in the cmap
>>> cmap([0, 0.5, 1])
array([[ 0.0416 , 0. , 0. , 1. ],
[ 1. , 0.3593141, 0. , 1. ],
[ 1. , 1. , 1. , 1. ]])
这是你的意思,还是你想做别的事?