package fr.unistra.pelican.demos.display; import fr.unistra.pelican.Image; import fr.unistra.pelican.PelicanException; import fr.unistra.pelican.algorithms.conversion.ColorImageFromMultiBandImage; import fr.unistra.pelican.algorithms.histogram.ContrastStretch; import fr.unistra.pelican.algorithms.histogram.ContrastStretchEachBandWithPercentileEdgeCutting; import fr.unistra.pelican.algorithms.io.ImageLoader; import fr.unistra.pelican.algorithms.visualisation.Viewer2D; public class MultispectralDisplayDemo { public static void main(String[] args) throws PelicanException { if (args.length != 4 && args.length != 5) System.out .println("Usage: DisplayDemo image red green blue [stretch|percentage]\n " + "where image is the image to be displayed " + "and red/green/blue the indices of relative bands (-1 to disable one image band)" + "and stretch is an optional flag to stretch values or a percentage value for percentile cutting"); else { Image im = ImageLoader.exec(args[0]); if (args.length == 5) { if (args[4].equalsIgnoreCase("stretch")) im = ContrastStretch.exec(im); else im = ContrastStretchEachBandWithPercentileEdgeCutting.exec( im, Integer.parseInt(args[4]) / 100.0); } im.setColor(true); im = ColorImageFromMultiBandImage.exec(im, Integer .parseInt(args[1]), Integer.parseInt(args[2]), Integer .parseInt(args[3])); Viewer2D.exec(im, args[0]); System.out.println(im.getClass().getName() + " " + im.getXDim() + "x" + im.getYDim() + "x" + im.getZDim() + "x" + im.getTDim() + "x" + im.getBDim() + " (" + im.size() + " pixels)"); } } }