Package de.mpi.rgblab.apps

Source Code of de.mpi.rgblab.apps.ShellApp3

package de.mpi.rgblab.apps;

import java.io.File;
import java.util.Vector;

import de.mpi.rgblab.color.ColorModel;
import de.mpi.rgblab.data.ColorReader;
import de.mpi.rgblab.data.Data;
import de.mpi.rgblab.optimizer.Optimizer;
import de.mpi.rgblab.utils.LogUtil;
import de.mpi.rgblab.utils.MemoryUtil;
import de.mpi.rgblab.utils.VisUtil;

public class ShellApp3 {

  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
//    Vector<String> s = new Vector<String>();
//    directoryReader("Y:\\Projects\\vis-tool\\log", s);
    //shell("Y:\\Projects\\vis-tool\\input-color-schemes" ,"Y:\\Projects\\vis-tool\\input-scatterplots\\1",  "log_1");
    shell("Y:\\Projects\\vis-tool\\input-color-schemes" ,"Y:\\Projects\\vis-tool\\input-scatterplots\\2""log_2", 30, 4);
  }

 
  public static Vector<String> directoryReader(String dir, Vector<String> s) {

    File folder = new File(dir);
    File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
      if (listOfFiles[i].isFile()) {
        s.add(dir + "\\" + listOfFiles[i].getName());
      } else if (listOfFiles[i].isDirectory()) {
        directoryReader(listOfFiles[i].toString(), s);
      }
    }
    return s;
  }

  public static void shell(String dataDir, String colorsDir, String logDir, int distance, int surroundAngle) {
    Vector<String> dataFiles = new Vector<String>();
    dataFiles = directoryReader(dataDir, dataFiles);
   
    Vector<String> colorFiles = new Vector<String>();
    colorFiles = directoryReader(colorsDir, colorFiles);
   
    int radiusView =  VisUtil.getViewRadius(distance);
    int radiusSurround =  VisUtil.getRadius(distance, surroundAngle);
   
    for (int i=0; i < dataFiles.size(); i++)
    {
      String dataFile = dataFiles.get(i);
      int index = dataFile.lastIndexOf('\\');
      int index2 = dataFile.lastIndexOf('.');
      String filename = dataFile.substring(index+1, index2);
     
      for (int j=0; j < colorFiles.size(); j++) {
        String colorFile = colorFiles.get(j);
        int index_ = colorFile.lastIndexOf('\\');
        int index2_ = colorFile.lastIndexOf('.');
        String filename_ = colorFile.substring(index_ +1, index2_+ "." + filename ;
     
        String logFile = logDir + '/' + filename_ + ".log.dat";
        String rgbFile = logDir + '/' + filename_ + ".rgb.dat";
       
        System.out.println(dataFile);
        System.out.println(colorFile);
        optFile(radiusView, radiusSurround, colorFile, dataFile, logFile, rgbFile);
        MemoryUtil.freeMemory();
       
      }

    }
   
  }

  public static void optFile(int radiusView, int radiusSurround, String colorData, String inputData, String logFile, String outputFile) {

//    System.out.println("Start");
//    if (args.length != 5) {
//      System.out
//          .println("five parameters - the first is the radius. The socond is the file with the colors. The third is data file. The fourth is the log file. The fifth is the RGB result file");
//    }
//
//    int radius = new Integer(args[0]).intValue();
//    String logFile = args[3];
//    String inputData = args[2];
//    String colorData = args[1];
//    String outputFile = args[4];

    Data data = new Data();
    data.importData(inputData);

    Vector<ColorModel> classColors = new Vector<ColorModel>();
    classColors = ColorReader.getColorsAsColorModel(colorData);

    if (classColors.size() < data.getClassNumbers()) {
      System.out.println("The color file needs to have at least "
          + data.getClassNumbers() + " colors!");
      return;
    }

    // data.computeSaliency(radius, classColors);
    // data.computeVisibility(radius);
    // data.export(args[2]);
    Optimizer opt = new Optimizer(logFile, 8, 6);
    classColors = opt.optimize(data, classColors, radiusView, radiusSurround);
    LogUtil l = new LogUtil(outputFile, true);

    for (int i = 0; i < classColors.size(); i++) {
      l.log(Integer.toString(Math.round((float)classColors.get(i).getDimension_1())));
      l.log(",");
      l.log(Integer.toString(Math.round((float)classColors.get(i).getDimension_2())));
      l.log(",");
      l.logln(Integer.toString(Math.round((float)classColors.get(i).getDimension_3())));
    }

    l.close();
    System.out.println("End");
   

  }
}
TOP

Related Classes of de.mpi.rgblab.apps.ShellApp3

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.