Numpy:在创建RGB图像阵列时指定轴顺序

时间:2018-04-10 21:38:22

标签: python arrays numpy

我有3个numpy数组:R,G,B,每个都是形状(32,32)。

现在我想把它们变成一个图像。我做了

img = np.array([R, G, B])

然而,如果我这样做

img.shape 

我得到(3,32,32)。我尝试指定"命令" np.array函数的参数,但所有可能性都导致相同的事情。什么是正确的方法?我不想使用

np.swapaxes()

我更喜欢从一开始就以正确的方式构建它。

2 个答案:

答案 0 :(得分:1)

使用np.dstack按第三轴堆叠数组:

>>> import numpy as np
>>> R = np.arange(4).reshape(2,2)
>>> G = np.arange(4).reshape(2,2)
>>> B = np.arange(4).reshape(2,2)
>>> np.dstack([R,G,B])
array([[[0, 0, 0],
        [1, 1, 1]],

       [[2, 2, 2],
        [3, 3, 3]]])
>>> np.dstack([R,G,B]).shape
(2, 2, 3)

答案 1 :(得分:1)

沿最后一个轴(有效stack

致电dstack
img = np.stack([R, G, B], axis=-1)
img.shape
(32, 32, 3)