package fr.unistra.pelican.algorithms.applied.remotesensing; import fr.unistra.pelican.Algorithm; import fr.unistra.pelican.AlgorithmException; import fr.unistra.pelican.Image; import fr.unistra.pelican.InvalidNumberOfParametersException; import fr.unistra.pelican.InvalidTypeOfParameterException; import fr.unistra.pelican.algorithms.segmentation.flatzones.BooleanConnectedComponentsLabeling; import fr.unistra.pelican.algorithms.segmentation.weka.WekaClassification5NN; /** * Create regions using the 5NN classification algorithm on original image. * Settings are : * - samples : training set, boolean image, each band is for a class, white pixel are samples. * * @author Sbastien Derivaux, Jonathan Weber */ public class RegionBuilderClassificationConnexity extends Algorithm { /** * Image to be processed */ public Image inputImage; /** * Training set image, each band is for a class */ public Image samples; /** * Resulting picture */ public Image outputImage; /** * Constructor * */ public RegionBuilderClassificationConnexity() { super(); super.inputs = "inputImage,samples"; super.outputs = "outputImage"; } /* (non-Javadoc) * @see fr.unistra.pelican.Algorithm#launch() */ public void launch() throws AlgorithmException { try { outputImage = (Image) new WekaClassification5NN().process(inputImage, samples); outputImage = (Image) new BooleanConnectedComponentsLabeling().process(outputImage); } catch (InvalidTypeOfParameterException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (AlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidNumberOfParametersException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * This method creates regions using the 5NN classification algorithm on original image. * @param inputImage Image to be processed * @param samples Training set * @return 5NN classified picture */ public static Image exec (Image inputImage, Image samples) { return (Image) new RegionBuilderClassificationConnexity().process(inputImage,samples); } }