转载自:https://cloud.tencent.com/developer/ask/sof/1239327/answer/1718259
PIL TypeError:无法处理此数据类型:(1,1,1),|u1
问题
我有一个形状为(1,28,28)的numpy.ndarray,值是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))
任何帮助都将不胜感激。
附言:我已经在做suggestion here了。
回答
如果你的图像是灰度的,你需要向PIL传递一个二维数组,即形状必须是h,w而不是h,w,1。
im = Image.fromarray((img[0] * 255).astype(np.uint8))