类型错误:图像数据的形状 (3, 32, 32) 无效 - 在 plt 中显示彩色图像

Wan*_*rer 8 python matplotlib imshow

我有一个图像数组,其中每个图像都存储为以下维度

(3, 32, 32)

如果我想使用显示图像

plt.imshow(img)
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

类型错误:图像数据的形状 (3, 32, 32) 无效

我明白为什么我会收到此错误,因为根据imshow 文档,它需要一个形状数组

(M,N),或(M,N,3),或(M,N,4)

如何转换图像,使其具有所需的尺寸而不丢失任何数据?

谢谢!

Jus*_*nen 12

尝试转置:img.T这将颠倒尺寸的顺序,使其成为(M,N,3).


小智 10

使用的问题img.T是图像会改变方向。最好的替代方法是使用img.permute(1, 2, 0).


小智 6

你可以把频道调暗到最后

img = img.swapaxes(0,1)
img = img.swapaxes(1,2)
Run Code Online (Sandbox Code Playgroud)