package fr.unistra.pelican.algorithms.arithmetic; import fr.unistra.pelican.Algorithm; import fr.unistra.pelican.AlgorithmException; import fr.unistra.pelican.Image; /** * Set pixels with values under a given threshold to minimum value. * * @author ?, Benjamin Perret */ public class DeleteSmallValues extends Algorithm{ /** * Input image. */ public Image inputImage; /** * Threshold */ public double threshold; /** * Result image */ public Image outputImage; /** * Constructor * */ public DeleteSmallValues() { super(); super.inputs = "inputImage,threshold"; super.outputs = "outputImage"; } /* (non-Javadoc) * @see fr.unistra.pelican.Algorithm#launch() */ public void launch() throws AlgorithmException{ outputImage = inputImage.copyImage(false); outputImage.setMask( inputImage.getMask() ); int size = inputImage.size(); for (int i = 0; i < size; ++i) if ( inputImage.isPresent(i) ) { if (inputImage.getPixelDouble(i) <= threshold) { outputImage.setPixelDouble(i, 0.0); } else { outputImage.setPixelDouble(i, inputImage.getPixelDouble(i)); } } } /** * Set pixels with values under a given threshold to minimum value. * * @param inputImage Input image. * * @param threshold Threshold. * * @return Result of the algorithm */ public static Image exec(Image inputImage, double threshold) { return (Image) new DeleteSmallValues().process(inputImage, threshold); } }