Numpy 从[3,M,N]到[M,N,3]的图像

Numpy 从[3,M,N]到[M,N,3]的图像,numpy,Numpy,我有一个用不同通道表示图像的数据阵列,如下所示: 图像=(8100100),其中8=通道,100x100为每个通道的实际图像 我对提取该图像的RGB分量感兴趣: imageRGB = np.take(image, [4,2,1], axis = 0) 通过这种方式,我有一个带有RGB组件的(3100100)数组。 但是,我需要可视化它,所以我需要一个数组(100100,3),我认为这非常简单,但我尝试的所有方法都不起作用。numpy einsum是一个很好的工具。 正式文件: 将numpy导入

我有一个用不同通道表示图像的数据阵列,如下所示:

图像=(8100100),其中8=通道,100x100为每个通道的实际图像

我对提取该图像的RGB分量感兴趣:

imageRGB = np.take(image, [4,2,1], axis = 0)
通过这种方式,我有一个带有RGB组件的(3100100)数组。
但是,我需要可视化它,所以我需要一个数组(100100,3),我认为这非常简单,但我尝试的所有方法都不起作用。

numpy einsum是一个很好的工具。 正式文件:

将numpy导入为np
imageRGB=np.random.randint(0,5,大小=(3100101))
#将最后一个暗显设置为101,以使内容更清晰
图像rgb.shape
# (3,100,101)
imageRGB_reformate=np.einsum('kij->ijk',imageRGB)
imageRGB_重塑形状
# (100,101,3)

在我看来,这是最清晰的书写和阅读方式。

哇,谢谢!我从来没有想过使用爱因斯坦求和,实际上它工作得很好

出于好奇,是否可以手动构建它? 例如:

R = image[4,:,:]
G = image[2,:,:]
B = image[1,:,:]
imageRGB = ???

8x100x100
阵列
image
image.transpose(1,2,0)[…,[4,2,1]