无法将 numpy 数组重塑为 RGB 图像

我有一个 numpy 数组,其中包含 CIFAR10 数据集中的所有图像: (50000, 3072)

我从中取出一个数组,(3072,) 然后尝试将其形状转换为 RGB 图像 .reshape(32, 32, 3)

但是当我将它传递给 plt.show() 时,它显示类似的内容

http://img3.mukewang.com/64acec150001f9ad03320329.jpg

我不确定为什么它没有正确显示图像,我也尝试过, .reshape(3, 32, 32)但它TypeError: Invalid shape (3, 32, 32) for image data在绘图时给出

我如何正确地重塑它?


守着星空守着你
浏览 153回答 1
1回答

慕桂英3389331

您应该尝试np.swapaxes()获得有效的形状来plt.imshow()接受。import numpy as np dd = np.array([1]*3072).reshape(3, 32, 32) dd1 = np.swapaxes(dd, 0, 2)尝试 plt.imshow(dd1)看看会发生什么。(使用您自己的数据):p首先,您应该使用 (3, 32, 32) 重塑,这是由数据的顺序决定的。然后你必须显示重塑图像,但plt.imshow()只接受形状为 (M, N) 或 (M, N, 3) 或 (M, N, 4) 的数组,所以你现在必须交换轴,因为重塑数据是(3、32、32)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python