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