Alex Torquato S. Carneiro wrote:
> I'm doing a project in Python. It's a capture and process a image, I'm 
> using PIL for images and scipy (together numpy)  for processing, about 
> fft, filter, etc..
> I'm needing to convert a image in a matrix type, can anyone help me?
> 
> Thanks.
> Alex.
> 

This is what I've used.  I started with:

http://effbot.org/zone/pil-numpy.htm

which uses the old numeric package, and modified it slightly for numpy, so it 
looks like:

import numpy, Image

def image2array(im):
     if im.mode not in ("L", "F"):
         raise ValueError, "can only convert single-layer images"
     if im.mode == "L":
         a = numpy.fromstring(im.tostring(), numpy.UInt8)
     else:
         a = numpy.fromstring(im.tostring(), numpy.Float32)
     a.shape = im.size[1], im.size[0]
     return a

def array2image(a):
     if a.dtype.name == 'uint8':
         mode = "L"
     elif a.dtype.name == 'float32':
         mode = "F"
     elif a.dtype.name == 'float64':
         a=a.astype('float32')
         mode = "F"
     else:
         raise ValueError, "unsupported image mode %s" % a.dtype.name
     return Image.fromstring(mode, (a.shape[1], a.shape[0]), a.tostring())




seems to work!


                        bb

-- 
-----------------

              [EMAIL PROTECTED]
              http://web.bryant.edu/~bblais
_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to