average of PIL images

7stud bbxx789_05ss at yahoo.com
Mon Feb 18 21:58:58 CET 2008


On Feb 18, 10:18 am, vaneric <vaneric... at gmail.com> 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.do i need to convert the
> r,g,b in to a single value for each pixel? the average value of a
> pixel will be a float isn't it? how can i create a PIL image from
> this?
> any help,directive greatly appreciated
> eric

import Numeric

arr = Numeric.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
    [10, 11, 12]
])

col1 = arr[0:,0]
print col1

sum = 0
count = 0
for num in col1:
    sum += num
    count += 1

avg = (sum * 1.0)/count   #convert one term to a float to get float
result
print avg
print round(avg)
print int(round(avg))


print arr[0]

size = len(arr[0])
for i in range(size):
    col = arr[0:, i]
    sum = 0
    count = 0

    for num in col:
        sum += num
        count += 1

    result = (sum * 1.0) /count
    print result,
    result = int(round(result))
    print result

--output:--
[ 1  4  7 10]
5.5
6.0
6
[1 2 3]
5.5 6
6.5 7
7.5 8



More information about the Python-list mailing list