[Numpy-discussion] create a numpy array of images
Zachary Pincus
zachary.pincus at yale.edu
Mon Jan 31 15:55:05 EST 2011
>>> I am using python for a while now and I have a requirement of
>>> creating a
>>> numpy array of microscopic tiff images ( this data is 3d, meaning
>>> there are
>>> 100 z slices of 512 X 512 pixels.) How can I create an array of
>>> images?
>>
>> It's quite straightforward to create a 3-d array to hold this kind
>> of data:
>>
>> image_block = np.empty((100, 512, 512), dtype=??)
>>
>> now you can load it up by using some lib (PIL, or ???) to load the
>> tif
>> images, and then:
>>
>> for i in images:
>> image_block[i,:,:] = i
>
> Notice that since PIL 1.1.6, PIL Image objects support the numpy
> interface: http://effbot.org/zone/pil-changes-116.htm
For even longer than this, PIL has been somewhat broken with regard to
16-bit images (very common in microscopy); you may run into strange
byte-ordering issues that scramble the data on reading or writing.
Also, PIL's numpy interface is somewhat broken in similar ways.
(Numerous people have provided patches to PIL, but these are never
incorporated into any releases, as far as I can tell.)
So try PIL, but if the images come out all wrong, you might want to
check out the scikits.image package, which has hooks for various other
image read/write tools.
Zach
More information about the NumPy-Discussion
mailing list