Package

Source Code of PEigenFaceApplet


import java.io.File;
import java.util.Arrays;

import processing.core.PApplet;
import processing.core.PImage;

public class PEigenFaceApplet  extends PApplet {
  PEigenface face;
 
  double[] weights=new double[10];
  public double[] offsets;
 
  public void setup() {
    size(700,840);
    String path = "../cathedrals";
    File[] files = this.getFilesFromFolder(path);
    PImage[] imageSet = new PImage[files.length];
    for (int i = 0; i < files.length; i++) {
      PImage img = this.loadImage(files[i].getAbsolutePath());
      imageSet[i] = img;
    }
    face=new PEigenface(this);
    face.initEigenfaces(imageSet);
    int nEigenfaces=20;
    weights=new double[nEigenfaces];
    offsets=new double[nEigenfaces];
    for (int i=0;i<offsets.length;i++){
      offsets[i]=random(30,50);
      if (random(1)>0.5){
        offsets[i]*=-1;
      }
      weights[i]=face.weights[0][i];
    }
  }
  public void draw(){
    scale(1f);
    for (int i=0;i<weights.length;i++){
      weights[i]+=offsets[i];
      if (weights[i]<=-3000){
        weights[i]=-3000;
        offsets[i]*=-1;
      }
      if (weights[i]>=5000){
        weights[i]=5000;
        offsets[i]*=-1;
      }
    }
    PImage img=face.getImageByWeights(weights,25);
    image(img,0,0,width,height);
  }
 
  public File[] getFilesFromFolder(String folderPath) {
    File dir = new File(folderPath);
    File[] files = dir.listFiles();
    Arrays.sort(files);
    return files;
  }
 
}


TOP

Related Classes of PEigenFaceApplet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.