1

輝度(N x M x 1配列)をrgb配列(N x M x 3)に変換しようとしています。

アイデアは、rgb配列を使用してのrgba配列を取得することですimshow()。私が探している結果は、ルミナンス配列をにフィードするだけで得られる結果と同じですがimshow()、アルファを制御できます。これを行うための簡単な関数はありますか?

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 に答える