PIL 类型错误:无法处理此数据类型:(1, 1, 1),|u1

kkg*_*arg 6 arrays numpy image python-imaging-library numpy-ndarray

我有一个numpy.ndarray形状(1,28,28),值是 [0,1] 范围内的浮点。我的最终目标是将数组保存为 png 图像。

即使在转置数组并将其与 255 相乘以获得 uint 值之后,它仍然会抛出错误*** TypeError: Cannot handle this data type: (1, 1, 1), |u1

我正在使用以下代码:

im = Image.fromarray((img.transpose(1,2,0) * 255).astype(np.uint8))
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

PS我已经在这里研究过这个建议。

Mar*_*ell 9

如果你的图像是灰度的,你需要向 PIL 传递一个二维数组,即形状必须h,w不是h,w,1

im = Image.fromarray((img[0] * 255).astype(np.uint8))
Run Code Online (Sandbox Code Playgroud)