1

我正在尝试将亮度(N x M x 1 阵列)转换为 rgb 阵列(N x M x 3)。

这个想法是使用 rgb 数组来获取 rgba 数组imshow()。我正在寻找的结果与我将亮度数组馈送到 的结果相同imshow(),但它让我可以控制 alpha。是否有一些简单的功能可以做到这一点?

4

1 回答 1

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.       ]])

这是你的意思,还是你试图做其他事情?

于 2012-08-14T22:08:53.913 回答