假设我有一张RGB图像:
from skimage import data
img = data.astronaut()
print(img.shape) # (512, 512, 3)
是否有简洁的numpy命令沿着颜色通道解压缩它:
R, G, B = np.unpack(img, 2) # ?
我正在做的是使用理解:
R, G, B = (img[:, :, i] for i in range(3))
但是没有更简单的命令吗?
答案 0 :(得分:1)
或者,您可以使用np.rollaxis
-
R,G,B = np.rollaxis(img,2)
答案 1 :(得分:0)
您可以将长度3尺寸转置到前面,然后将其解压缩:
R, G, B = img.transpose((2, 0, 1))
答案 2 :(得分:0)
或者,您可以使用np.split
:
R, G, B = np.split(img, img.shape[-1], axis=-1)
如果阵列的形状(高度,宽度,通道),您可以使用np.dsplit
沿深度尺寸分割:
R, G, B = np.dsplit(img, img.shape[-1])