我想将PIL图像转换为numpy数组。 Numpy的asarray
函数只是将图像放在一个0维数组中。
(Pdb) p img
<PIL.Image._ImageCrop image mode=RGB size=1024x0 at 0x106953560>
(Pdb) img.getdata()
<ImagingCore object at 0x104c97b10>
(Pdb) np.asarray(img.getdata())
array([], dtype=float64)
(Pdb) np.asarray(img)
array(<PIL.Image._ImageCrop image mode=RGB size=1024x0 at 0x106953560>, dtype=object)
(Pdb) np.asarray(img).shape
()
(Pdb) np.asarray(img, np.uint8)
*** SystemError: error return without exception set
similar SO question上的解决方案不起作用。
答案 0 :(得分:5)
您的img
大小为1024x0:
PIL.Image._ImageCrop图像模式= RGB尺寸= 1024x0 位于0x106953560
这是一张0高的图像。因此,结果NumPy数组为空。要进行修复,请裁剪图像,使其具有正宽度和高度。