Ignore:
Timestamp:
09/11/2009 04:25:20 PM (11 years ago)
Author:
dave
Message:

added a load of tools for previewing eigenspaces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • foam/trunk/python/faces.py

    r113 r114  
    33 
    44import glob,string 
     5import numpy as np 
     6import scipy.misc.pilutil as smp 
    57from vision import * 
    68 
     
    8789        s = pca.Synth(p) 
    8890        return s[w*h]>0; 
     91         
     92def load_pca(filename): 
     93        pca = PCA(1)     
     94        f = OpenFile(filename, "rb") 
     95        pca.Load(f) 
     96        CloseFile(f) 
     97        return pca 
     98         
     99def plot_eigenface(image,x,y,w,h,pca,row,gain): 
     100        eigenface = pca.GetEigenTransform().GetRowVector(row)*gain+pca.GetMean() 
     101        c=0 
     102        for iy in range(0,h): 
     103                for ix in range(0,w): 
     104                        v = int(max(min(256*eigenface[c],256),0)) 
     105                        image[iy+y,ix+x] = [v,v,v]  
     106                        c=c+1 
     107 
     108def make_eigenfaces_image(w,h,pca,start,end,gain): 
     109        num_imagesx = end-start;         
     110        image = np.zeros( (h,w*num_imagesx,3), dtype=np.uint8 ) 
     111        for i in range(start, end): 
     112                c=i-start 
     113                plot_eigenface(image,w*c,0,w,h,pca,i,gain) 
     114        return image 
Note: See TracChangeset for help on using the changeset viewer.