import Image
from numpy import zeros, asarray
YUV = zeros((240, 320, 3), dtype='uint8')
im = Image.fromarray(YUV, mode="YCbCr")
blah = asarray(im)
Когда я запускаю это (IPython 0.10.1 на Py 2.7.1), кажется, что python читает некоторую память, которую он не должен читать.Иногда происходит сбой, иногда - нет, но я, безусловно, могу его вызвать, увеличив нули 320x240, например, до 3200x2400 и / или вызвав blah.copy ().Кроме того, если я сделаю:
from matplotlib import pyplot as p
p.subplot(221); p.imshow(blah[:,:,0])
p.subplot(222); p.imshow(blah[:,:,1])
p.subplot(223); p.imshow(blah[:,:,2])
p.subplot(224); p.imshow(blah[:,:,3])
p.gray()
p.show()
, я начну видеть ненужную память, появившуюся в бла примерно в строке 180. Что здесь происходит?Я плохо конвертирую из PIL Image в массив numpy?В чем разница между использованием массива (im) вместо asarray (im) и что является предпочтительным?(обратите внимание, что в первом случае он все еще иногда дает сбой, но кажется, что он более стабилен и менее мусорный)