6

考虑以下脚本:

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 上不会发生此问题。

4

0 回答 0