np.stack()を使用して、異なる1チャネルのグレースケール画像を3チャネルRGB画像にマージします

np.stackドキュメントは説明します:


新しい軸に沿って配列のシーケンスを結合します。

axis パラメータは、結果の次元での新しい軸のインデックスを指定します。たとえば、  axis=0 それが最初の次元axis=-1 になる場合、およびそれが最後の次元になる場合  です。

指定された軸の新しい軸を生成し、その軸に沿って配列をスタックします

ここにコードテストがあります:

a = np.arange(8).reshape((2,2,2))
array([[[0, 1],
        [2, 3]],

       [[4, 5],
        [6, 7]]])
b = np.arange(8).reshape((2,2,2))+1
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])

最初の2は2つのサンプルで、次の2 * 2はピクセルマトリックスです。aとbを2 * 2 * 2 * 2に変更するには、4番目の2がカラーチャネルを表します。

c = np.stack((a,b),axis=3)
array([[[[0, 1],
         [1, 2]],

        [[2, 3],
         [3, 4]]],


       [[[4, 5],
         [5, 6]],

        [[6, 7],
         [7, 8]]]])

確認します。c[:、:、:、0]を参照してください。

 c[:,:,:,0]
array([[[0, 1],
        [2, 3]],

       [[4, 5],
        [6, 7]]])

また、2番目の色チャンネルになることもできます。

c = np.stack((a,b),axis=1)
array([[[[0, 1],
         [2, 3]],

        [[1, 2],
         [3, 4]]],


       [[[4, 5],
         [6, 7]],

        [[5, 6],
         [7, 8]]]])

c[:,1,:,:]
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])


c[:,0,:,:]
array([[[0, 1],
        [2, 3]],

       [[4, 5],
        [6, 7]]])

 

おすすめ

転載: blog.csdn.net/j515332019/article/details/108648109