我有3个numpy数组:R,G,B,每个都是形状(32,32)。
现在我想把它们变成一个图像。我做了
img = np.array([R, G, B])
然而,如果我这样做
img.shape
我得到(3,32,32)。我尝试指定"命令" np.array函数的参数,但所有可能性都导致相同的事情。什么是正确的方法?我不想使用
np.swapaxes()
我更喜欢从一开始就以正确的方式构建它。
答案 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)