Posted by
Mohamed Tleis on
Jun 12, 2014; 2:48pm
URL: http://imagej.273.s1.nabble.com/Acquiring-the-LUT-of-each-Channel-tp5008167.html
Dear members,
I am trying to get the Lookup tables for each channel in a 2 channel tif
image programmaticly. I have blue Lut in the first channel and gray in
the second. Here are my trys with the output commented.
I am never able to get the required results as "rgb[255] in the output"
should be blue for the first channel and white for the second.
Any Ideas?
[code]
import ij.ImagePlus;
import ij.ImageStack;
import ij.process.ImageProcessor;
import ij.process.LUT;
import loci.plugins.BF;
import loci.plugins.in.ImporterOptions;
public class testLuts {
public void getImpLuts(String path)
{
ImagePlus imp = new ImagePlus(path);
LUT[] luts = imp.getLuts();
for(int i =0; i < luts.length; i++)
System.out.println(luts[i].toString());
/* Output: Exception in thread "main"
java.lang.NullPointerException
at testLuts.main(testLuts.java:23)
Java Result: 1 */
}
public void getIpLut(String path)
{
ImagePlus imp = new ImagePlus(path);
ImageStack stack = imp.getImageStack();
for(int i =0; i < stack.getSize(); i++)
{
ImageProcessor ip = stack.getProcessor(i+1);
LUT l = ip.getLut();
System.out.println(l.toString());
/* OUTPUT: rgb[0]=black, rgb[255]=blue, min=0.0000, max=255.0000
rgb[0]=black, rgb[255]=blue, min=0.0000, max=255.0000 */
}
}
public void withBioFormats(String path)
{
try{
ImporterOptions options = new ImporterOptions();
options.setId(path);
options.setAutoscale(true);
options.setColorMode(ImporterOptions.COLOR_MODE_COMPOSITE);
ImagePlus[] imps = BF.openImagePlus(options);
LUT[] luts = imps[0].getLuts();
ImageStack stack = imps[0].getImageStack();
for(int i = 0; i < luts.length; i++)
{
System.out.println(luts[i].toString());
}
for(int i = 0; i < stack.getSize(); i++)
{
ImageProcessor ip = stack.getProcessor(i+1);
LUT lut = ip.getLut();
System.out.println(lut.toString());
}
}
catch(Exception x){x.printStackTrace();}
/* OUTPUT
rgb[0]=black, rgb[255]=blue, min=1.0000, max=68.0000
rgb[0]=black, rgb[255]=blue, min=0.0000, max=213.0000
rgb[0]=black, rgb[255]=white, min=0.0000, max=255.0000
rgb[0]=black, rgb[255]=white, min=0.0000, max=255.0000*/
}
public static void main(String args[])
{
testLuts test = new testLuts();
String path = "myImage.tif";
test.withBioFormats(path);
test.getIpLut(path);
test.getImpLuts(path);
}
}
[/code]
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html