将3x32x32大小的numpy图像数组转换为32x32x3并在Python中保存为实际图像

2024-03-29 12:41:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个形状为(3072,1)或(3,32,32)的numpy数组中的图像。这由前1024个值组成,分别对应于红色分量后接1024绿色分量后接1024蓝色分量。这1024个值对应于32x32大小的图像。我想知道是否有任何python方法或快捷方式将这个数组转换为32x32x3大小的数组,以便将数组保存为实际图像?在

这里的问题是,如果我把它的尺寸(32x32x3)改为

x = numpy.reshape(x,(32,32,3))

然后像素值会混乱起来,我不会得到实际的图像保存后,因为原来的图像是形状(3,32,32)

我只想把数组保存到实际图像中。在


Tags: 方法图像numpy尺寸像素数组分量蓝色
2条回答

使用transposition

x = numpy.transpose(x, (1, 2, 0))

这意味着,将原始轴顺序表示为0, 1, 2,您希望它们按1, 2, 0的顺序重新排列,也就是说,将第一个轴(颜色值)向右移动。在

您可以使用^{}

In [5]: np.rollaxis(a,0,3).shape
Out[5]: (32, 32, 3)

相关问题 更多 >