以下のような2次元のmask画像があります。
構成ピクセルは6こです。(0は背景)
matplotlibで以下のように'jet'で色付けしたのですが、ランダムに色付けされます。
python
1mask.shape 2>>>(360, 480) 3 4np.unique(mask) 5>>>array([0, 1, 2, 3, 4, 5, 6], dtype=uint8) 6 7#'jet'で色づけして表示 8num_classes=7 9plt.imshow(mask, vmin=0, vmax=num_classes-1, cmap='jet') 10plt.show()
やりたいことはピクセルの値毎に色を指定して、色付けするにはどうしたら良いでしょうか?
右から順に以下のような感じで色付けしたいのですが、
「1='Blues', 2='Greens', 3='Oranges', 4='Purples', 5='Reds', 6='YlOrBr'」
エラーがでます。
for文で回してもうまくいきません。ご教授お願いします。
python
1from collections import OrderedDict 2cmaps = OrderedDict() 3cmaps['jet'] = ['Blues', 'Greens', 'Oranges', 'Purples','Reds', 'YlOrBr'] 4num_classes=7 5plt.imshow(mask, vmin=0, vmax=num_classes-1, cmap=cmaps) 6plt.show() 7 8 9>>>>>> 10TypeError Traceback (most recent call last) 11<ipython-input-73-7a6f8f35a2d3> in <module>() 12 1 num_classes=7 13----> 2 plt.imshow(mask, vmin=0, vmax=num_classes-1, cmap=cmaps) 14 3 plt.show() 15 16TypeError: unhashable type: 'collections.OrderedDict'
参考サイト
・matplotlib - カラーマップについて
・matplotlib / seaborn - カラーマップ一覧を整理
・matplotlibのcmap(colormap)パラメータの一覧
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。