how to create eigenface image

H

harryos

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
adjustedfaces=facesarray-avgarray
adjustedmatrix=matrix(adjustedfaces)
adjustedmatrix_trans=adjustedmatrix.transpose()
covariancematrix =adjustedmatrix*adjustedmatrix_trans
evalues,evect=eigh(covariancematrix)

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

here is a sample using 4X3 greyscale images

evalues
[ -1.85852801e-13 6.31143639e+02 3.31182765e+03 5.29077871e+03]
evect
[[ 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
facespace=evectmat*adjustedfaces

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.

also
when i tried to make an image by
im=im = Image.new('L', (width,height))
im.putdata(evectmat[0])
im.save("eigenface0.jpg")

it created an image with all pixels dark with no details to see
the same occurrs if i use
im.putdata(facespace[0])
can someone tell me if i am doing it wrong..
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,277
Latest member
VytoKetoReview

Latest Threads

Top