【发布时间】:2020-05-15 18:55:36
【问题描述】:
我有一个一维图像数组,其中存储了 32X32 彩色图像,首先 1024 为红色,1024 为绿色,1024 为蓝色。图像以行主要顺序存储,因此现在数组的前 32 个条目是图像第一行的红色通道值。
样本看起来像 X[0]
(array([255., 252., 253., ..., 173., 231., 248.], dtype=float32)
我尝试将数组重新整形为 3 部分,但构造的图像看起来并不像任何东西。
代码
a = X[0].reshape(3,-1).T.reshape(32,-1,3)
Image.fromarray(a, 'RGB')
生成的图像如下所示
也许数据集只是随机数。
【问题讨论】:
-
X[0]是一张图片吗?什么形状? (3072,)?如果是这样,我会尝试改写为(3,1024),然后改写为(3,32,32)。转置 (1,2,0) 将使其 (32,32,3) 可能转换为image -
是的 X[0] 是一张图片。
-
你可以堆叠 3 个平面,基本上是
img = np.dstack((X[:1024], X[1024:2048], X[2048:]))并重新整形为 (32,32)。