content: package edu.stanford.rsl.conrad.calibration.crossratios;
  
  import java.io.BufferedReader;
  import java.io.FileNotFoundException;
  import java.io.FileReader;
  import java.io.IOException;
  import java.util.ArrayList;
  
  import edu.stanford.rsl.conrad.calibration.CalibrationBead;
  import edu.stanford.rsl.conrad.calibration.GeometricCalibration;
  import edu.stanford.rsl.conrad.numerics.SimpleMatrix;
  
  public class CreateCalibration {
  
  	public static void main(String[] args) {
  		// TODO Auto-generated method stub
  		ArrayList<CalibrationBead> list = new ArrayList<CalibrationBead>();
  		
  		// read 2-D and 3-D positions
  		
  		try {
  			@SuppressWarnings("resource")
  			BufferedReader reader = new BufferedReader(new FileReader(args[0]));
  			String line = reader.readLine();
  			while (line != null){
  				String [] numbers = line.split(";");
  				double u = Double.parseDouble(numbers[0]);
  				double v = Double.parseDouble(numbers[1]);
  				double x = Double.parseDouble(numbers[2]);
  				double y = Double.parseDouble(numbers[3]);
  				double z = Double.parseDouble(numbers[4]);
  				list.add(new CalibrationBead(u, v, x, y, z));
  				line = reader.readLine();
  			};
  			
  		} catch (FileNotFoundException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		} catch (IOException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		}
  		
  		
  		// compute matrix
  		SimpleMatrix matrix = GeometricCalibration.computePMatrix(list);
  		
  		// write matrix somewhere
  		System.out.println(matrix);
  	}
  
  }
  