Newer
Older
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cz.fidentis.analyst.procrustes;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.face.HumanFaceFactory;
import cz.fidentis.analyst.feature.FeaturePoint;
import cz.fidentis.analyst.feature.services.FeaturePointCsvLoader;
import cz.fidentis.analyst.feature.services.FeaturePointExportService;
import cz.fidentis.analyst.feature.services.FeaturePointImportService;
import cz.fidentis.analyst.feature.utils.FileResourcesUtils;
import cz.fidentis.analyst.mesh.core.MeshModel;
import cz.fidentis.analyst.mesh.io.MeshObjLoader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
/**
*
* @author Jakub Kolman
*/
public class ProcrustesAnalysisComparison {
private static final Path FP_FILE_DIRECTORY = Paths.get(
"Comparison","src", "main", "resources", "cz", "fidentis", "comparison", "procrustesAnalysis", "faces");
private static final Path FACE_1_PATH = Paths.get(
"cz", "fidentis", "comparison", "procrustesAnalysis", "faces", "0002_01_ECA.obj");
private static final Path FACE_2_PATH = Paths.get(
"cz", "fidentis", "comparison", "procrustesAnalysis", "faces", "0002_02_ECA.obj");
private static final String FP_HEAD_01 = "0002_01_landmarks.csv";
private static final String FP_HEAD_02 = "0002_02_landmarks.csv";
private static final String HEAD_01 = "0002_01_ECA.obj";
private static final String HEAD_02 = "0002_01_ECA.obj";
private static final String OLD_FP_HEAD_01 = "3points_head01_landmarks.csv";
private static final String OLD_FP_HEAD_02 = "3points_head02_landmarks.csv";
private static final Path OLD_HEAD_01_PATH = Paths.get(
"cz", "fidentis", "comparison", "procrustesAnalysis", "faces", "3points_head01_ECA.obj");
private static final Path OLD_HEAD_02_PATH = Paths.get(
"cz", "fidentis", "comparison", "procrustesAnalysis", "faces", "3points_head02_ECA.obj");
public static void main(String[] args) throws IOException, URISyntaxException {
FileResourcesUtils fru = new FileResourcesUtils();
HumanFaceFactory factory = new HumanFaceFactory();
FeaturePointImportService featurePointImportService = new FeaturePointImportService();
// System.out.println("Working Directory = " + System.getProperty("user.dir"));
// HEADS from the new models
List<FeaturePoint> fpList01 = featurePointImportService.importFeaturePoints(
FP_FILE_DIRECTORY.toString(), FP_HEAD_01);
List<FeaturePoint> fpList02 = featurePointImportService.importFeaturePoints(
FP_FILE_DIRECTORY.toString(), FP_HEAD_02);
HumanFace face1 = factory.getFace(factory.loadFace(fru.getFileFromResource(FACE_1_PATH.toString())));
HumanFace face2 = factory.getFace(factory.loadFace(fru.getFileFromResource(FACE_2_PATH.toString())));
// HEADS from the old models
// List<FeaturePoint> fpList01 = featurePointImportService.importFeaturePoints(
// FP_FILE_DIRECTORY.toString(), OLD_FP_HEAD_01);
// List<FeaturePoint> fpList02 = featurePointImportService.importFeaturePoints(
// FP_FILE_DIRECTORY.toString(), OLD_FP_HEAD_02);
// HumanFace face1 = factory.getFace(factory.loadFace(fru.getFileFromResource(OLD_HEAD_01_PATH.toString())));
// HumanFace face2 = factory.getFace(factory.loadFace(fru.getFileFromResource(OLD_HEAD_02_PATH.toString())));
face1.setFeaturePoints(fpList01);
face2.setFeaturePoints(fpList02);
ProcrustesAnalysis pa = new ProcrustesAnalysis(face1, face2);
pa.analyze();
// import fp export csv
// List<FeaturePoint> fpList01 = featurePointImportService.importFeaturePoints(
// FP_FILE_DIRECTORY.toString(), "3points_head02head01.fp");
// List<FeaturePoint> fpList02 = featurePointImportService.importFeaturePoints(
// FP_FILE_DIRECTORY.toString(), "3points_top_head02.fp");
// FeaturePointExportService featurePointExportService = new FeaturePointExportService();
// featurePointExportService.exportFeaturePoints(fpList01, "head01", "CSV");
// featurePointExportService.exportFeaturePoints(fpList02, "3points_top_head02", "CSV");
System.out.println("finished");
}