当我用PIL加载图像并将其转换为NumPy数组时:
image = Image.open("myimage.png")
pixels = np.asarray(image)
Run Code Online (Sandbox Code Playgroud)
数据存储为[x] [y] [通道].即,像素[3,5,0]的值将是(3,5)像素,以及该像素的红色分量.
但是,我使用的库需要图像格式为[channel] [x] [y].因此,我想知道如何进行这种转换?
我知道NumPy有一个reshape功能,但这实际上并不允许你根据我的需要"交换"尺寸.
有帮助吗?谢谢!
为了按照您想要的顺序获取尺寸,您可以使用转置方法,如下所示:
image = Image.open("myimage.png")
pixels = np.asarray(image).transpose(2,0,1)
Run Code Online (Sandbox Code Playgroud)