88845


目的：img配列で定義された数値に応じて、color配列で定義されたRGB値を用いて、カラー画像用の三次元配列を作りたい。

以下のソースコードで、img配列の0には、color[0]=[50,80,10]を、1にはcolor[1]=[0,60,0]を代入して、カラー画像用の3次元配列を生成したいのですが、どのように記述すれば良いのか分かりません。

ご教示をお願いします。

[code]

    import numpy as np
    
    color = [[50,80,10],[0,60,0]]
    img = [
      [0,1,0,],
      [1,1,1,],
      [0,1,0,],
    ]
    
    nimg = np.array(img, dtype=np.uint8)
    
    
[/code]

ほしい結果

[code]

    [
      [[50,80,10],[0,60,0],[50,80,10]],
      [[0,60,0],[0,60,0],[0,60,0],]],
      [[50,80,10],[0,60,0],[50,80,10]],
    ]
    
    
[/code]


CC BY-SA 4.0
2022-05-16T06:52:56.060
88844
2022-05-16T07:38:56.683
32891
question
python numpy
numpy 二次元配列データから3次元配列を生成してカラー画像にしたい


こんな風にできます

[code]

    import numpy as np
    
    color = np.array([[50,80,10],[0,60,0]], dtype=np.uint8)
    img = np.array([
      [0,1,0,],
      [1,1,1,],
      [0,1,0,],
    ])
    
    nimg = color[img]
    display(nimg)
    
    assert (nimg == np.array([
      [[50,80,10],[0,60,0],[50,80,10]],
      [[0,60,0],[0,60,0],[0,60,0]],
      [[50,80,10],[0,60,0],[50,80,10]]])).all()
    
[/code]


CC BY-SA 4.0
2022-05-16T07:38:56.683
88845
2022-05-16T07:38:56.683
43025
88844
answer