package fr.unistra.pelican.algorithms.segmentation.labels;
import fr.unistra.pelican.Algorithm;
import fr.unistra.pelican.AlgorithmException;
import fr.unistra.pelican.BooleanImage;
import fr.unistra.pelican.IntegerImage;
/**
* This class returns a boolean image representing where
* the value is equal to the specific label
*
* @author Jonathan Weber
*/
public class FromSpecificLabelToBooleanImage extends Algorithm {
/**
* Input image
*/
public IntegerImage inputImage;
/**
* Label under consideration
*/
public int specificLabel;
/**
* Output image
*/
public BooleanImage outputImage;
/**
* Constructor
*
*/
public FromSpecificLabelToBooleanImage() {
super.inputs = "inputImage,specificLabel";
super.outputs = "outputImage";
}
public static BooleanImage exec(IntegerImage inputImage, int specificLabel) {
return (BooleanImage) new FromSpecificLabelToBooleanImage().process(inputImage,specificLabel);
}
/*
* (non-Javadoc)
*
* @see fr.unistra.pelican.Algorithm#launch()
*/
public void launch() throws AlgorithmException {
outputImage = new BooleanImage(inputImage.getXDim(),inputImage.getYDim(),inputImage.getZDim(),inputImage.getTDim(),1);
for(int i=0;i<outputImage.size();i++)
{
if(inputImage.getPixelInt(i)==specificLabel)
{
outputImage.setPixelBoolean(i, true);
} else
{
outputImage.setPixelBoolean(i, false);
}
}
}
}