how to create eigenface image

harryos oswald.harry at
Wed Feb 27 19:05:36 CET 2008

hi all
I am new to python and learning PCA method by reading up Turk&Petland
papers etc
while trying out PCA on a set of greyscale images using python, and
numpy I tried to create eigenvectors and facespace.

i have
 facesarray--- an NXP numpy.ndarray that contains data of images
       N=numof images,P=pixels in an image
avgarray --1XP array containing avg value for each pixel
covariancematrix =adjustedmatrix*adjustedmatrix_trans

after sorting such that most significant eigenvectors are selected
evectmatrix is now my eigenvectors matrix

here is a sample using 4X3 greyscale images

[ -1.85852801e-13   6.31143639e+02   3.31182765e+03   5.29077871e+03]
[[ 0.5        -0.06727772  0.6496399  -0.56871936]
 [ 0.5        -0.77317718 -0.37697426  0.10043632]
 [ 0.5         0.27108233  0.31014514  0.76179023]
 [ 0.5         0.56937257 -0.58281078 -0.29350719]]

evectmatrix  (sorted according to largest evalue first)
[[-0.56871936  0.6496399  -0.06727772  0.5       ]
 [ 0.10043632 -0.37697426 -0.77317718  0.5       ]
 [ 0.76179023  0.31014514  0.27108233  0.5       ]
 [-0.29350719 -0.58281078  0.56937257  0.5       ]]

then i can create facespace by

what i want to know is how i can create eigenface images .
when you mean an eigenvector ,is that a row of evectmatrix above?  is
evectmatrix[0] the eigenvector for first image and so on? I would
appreciate if someone can make this clear.

when i tried to make an image by
im=im ='L', (width,height))

it created an image with all pixels dark with no details to see
the same occurrs if i use
can someone tell me if i am doing it wrong..

More information about the Python-list mailing list