/*
* Copyright (C) 2010-2014 - Mathias Unberath
* CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
*/
import edu.stanford.rsl.conrad.data.numeric.Grid3D;
import edu.stanford.rsl.conrad.utils.ImageUtil;
import ij.IJ;
import ij.ImagePlus;
import ij.gui.GenericDialog;
import ij.plugin.PlugIn;
public class Replace_Intensity_Value_Tool implements PlugIn {
public Replace_Intensity_Value_Tool() {
}
/**
*
*/
@Override
public void run(String arg) {
ImagePlus image = IJ.getImage();
int val = 0;
int rep = 0;
GenericDialog gd = new GenericDialog("Replace intensity values.");
gd.addNumericField("Value to be replaced: ", val, 0);
gd.addNumericField("Replace with: ", rep, 0);
gd.showDialog();
if (gd.wasCanceled()) return;
val = (int)gd.getNextNumber();
rep = (int)gd.getNextNumber();
System.out.println("Replacing "+val+" with "+rep+".");
Grid3D img = ImageUtil.wrapImagePlus(image, true);
int[] size = img.getSize();
for(int i = 0; i < size[0]; i++){
for(int j = 0; j < size[1]; j++){
for(int k = 0; k < size[2]; k++){
if(img.getAtIndex(i, j, k) == val){
img.setAtIndex(i, j, k, rep);
}
}
}
}
ImagePlus processed = ImageUtil.wrapGrid(img, "Processed image");
processed.show();
}
}