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