我有一个ndarray代表具有不同通道的图像,像这样:
image =(8,100,100),其中8 =个通道,每个通道的实际图像100x100
我有兴趣提取该图像的RGB分量:
imageRGB = np.take(image, [4,2,1], axis = 0)
这样,我有一个(3,100,100)的RGB分量数组。 但是,我需要对其进行可视化处理,所以我需要一个数组(100,100,3),我认为这样做很简单,但是我尝试的所有方法都行不通。
答案 0 :(得分:0)
numpy einsum是一个很好的工具。 正式文件:https://docs.scipy.org/doc/numpy/reference/generated/numpy.einsum.html
import numpy as np
imageRGB = np.random.randint(0,5,size=(3,100,101))
# set the last dim to 101 just to make stuff more clear
imageRGB.shape
# (3,100,101)
imageRGB_reshape = np.einsum('kij->ijk',imageRGB)
imageRGB_reshape.shape
# (100,101,3)
我认为这是最清晰的读写方式。
答案 1 :(得分:0)
哇,谢谢!我从没想过要使用爱因斯坦求和,但实际上效果很好。
出于好奇,是否可以手动构建它? 例如:
R = image[4,:,:]
G = image[2,:,:]
B = image[1,:,:]
imageRGB = ???