如何重塑numpy图像?

How to reshape numpy image?

我有一张图像,它是一个形状为 (channels, height, width) 的 numpy 数组,我该如何重塑它以使其具有形状 (height, width, channels)

你可以这样做:

import numpy as np
newim = np.zeros((height, width, channels))
for x in xrange(channels):
    newim[:,:,x] = im[x,:,:]

我认为使用内置的 numpy 函数会更快。

np.rollaxis(array_name,0,3).shape

您可以使用transpose()来选择轴的顺序。在这种情况下,您需要:

array.transpose(1, 2, 0)

这将尽可能在原始数组上创建一个新视图(不会复制任何数据)。