vaneric wrote:
> hi
> i have a set of RGB images of diff faces (of people )as a 2 dim
> numpyarray
> ..something like
> threefaces=array([[xa1,xa2,xa3],
>        [xb1,xb2,xb3],
>        [xc1,xc2,xc3]])
> where xa1,xa2,xa3 are  tuples each representing rgb values of a pixel
> of first image ..
> 
> i need to create the average face image and display it.problem is i
> need to calculate (xa1+xb1+xc1)/3  etc to calculate avearge value of
> each pixel.how can i do this calculation.

threefaces.mean(axis=0)

> do i need to convert the
> r,g,b in to a single value for each pixel?

It depends on the problem that you are trying to solve. If monochrome images are
acceptable for your problem, then it is probably best to convert all your 
images 
to monochrome to do the averaging. At least for a first cut. Averaging color 
images is tricky; you really shouldn't do it in the RGB colorspace. There are a 
couple of colorspaces which you could choose; different problems require 
different colorspaces.

> the average value of a
> pixel will be a float isn't it?

Yes.

> how can i create a PIL image from
> this?

# Cast the floating point data to bytes.
avgface = avgface.astype(numpy.uint8)

# Create the PIL image from the numpy data.
img = Image.fromstring('L', (width, height), avgface.tostring())

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to