>>> 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 _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion