package fr.unistra.pelican.demos;
import fr.unistra.pelican.BooleanImage;
import fr.unistra.pelican.ByteImage;
import fr.unistra.pelican.DoubleImage;
import fr.unistra.pelican.Image;
import fr.unistra.pelican.IntegerImage;
import fr.unistra.pelican.PelicanException;
import fr.unistra.pelican.algorithms.conversion.GrayToPseudoColors;
import fr.unistra.pelican.algorithms.histogram.ContrastStretch;
import fr.unistra.pelican.algorithms.io.HdfImageLoad;
import fr.unistra.pelican.algorithms.io.ImageLoader;
import fr.unistra.pelican.algorithms.io.PelicanImageSave;
import fr.unistra.pelican.algorithms.visualisation.Viewer2D;
import fr.unistra.pelican.algorithms.visualisation.Viewer3x2D;
public class ConvertHdfToPelicanDemo {
public static void main(String[] args) throws PelicanException {
Image input, output;
if (args.length < 3)
System.out.println("Usage: ConvertHdfToPelicanDemo input view type [stretch]");
input = HdfImageLoad.exec(args[0], Integer.parseInt(args[1]));
if (args.length>=4 && args[3].equalsIgnoreCase("stretch")) {
input=ContrastStretch.exec(input);
System.out.println("Contrast stretched");
}
if (args[2].equalsIgnoreCase("boolean"))
output = new BooleanImage(input);
else if (args[2].equalsIgnoreCase("byte"))
output = new ByteImage(input);
else if (args[2].equalsIgnoreCase("int"))
output = new IntegerImage(input);
else if (args[2].equalsIgnoreCase("double"))
output = new DoubleImage(input);
else
throw new PelicanException("Problem with data type");
PelicanImageSave.exec(output, args[0]
.substring(0, args[0].lastIndexOf('.'))
+ ".pel");
System.out.println("Output file: "
+ args[0].substring(0, args[0].lastIndexOf('.')) + ".pel");
}
}