考虑以下脚本:
from PIL import Image
import numpy as np
im = Image.new("F", (512, 512), 0.)
这导致
>>> np.asarray(im)
array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]], dtype=float32)
正如我所料。但是,如果我有一个更大的图像,比如im = Image.new("F", (10240, 8600), 0.)
,则转换会产生一个数组,其中PIL图像是唯一的元素:
>>> np.asarray(im)
array(<PIL.Image.Image image mode=F size=10240x8600 at 0x122D8A08>, dtype=object)
这种行为是正常的吗?有解决方法吗?在Windows 7计算机上运行Python 2.7和PIL 1.1.7。在Unix上,问题不会发生。