Posted by
Robert Lockwood on
Dec 02, 2014; 10:33pm
URL: http://imagej.273.s1.nabble.com/Use-of-LUTS-give-different-results-tp5010726.html
Thanks to Wayne and Jerome I have a working (up to a point) section of Java
code that creates an 16 bit gray scale imagePlus from my raw infrared
camera data and saves it as a PNG. This image displays correctly in Fiji.
I next load a custom LUT, 256 byte each for RBB, and save that as a PNG.
If I load the gray scale PNG into Fiji and apply the custom LUT it displays
as I expect (the low values are in tans and the high in red to orange to
yellow to white).
The other PNG, with the LUT applied in code, is mostly all red.
For technical reasons the raw data start with DN values around 15,000+.
The target is a black body that I can heat to a precise temperature (I
don't go above 1,250 C in tests). DN values at the high end are about
22,000+ with a range less than 2^14.
Why do the gray scale PNG with the LUT applied post processing and the PNG
with the LUT applied in code differ and what can I do about it? Is it a
max/min or a stretch problem?
I can attach examples if that's allowed by the Interest Group rules. My
Java code is below:
Nate
ImagePlus imp = IJ.createImage("Untitled", imageWidth, imageHeight, 1
,imageBitsPerPix ); // 16
ShortProcessor ip = (ShortProcessor) imp.getProcessor();
short[] data = (short[]) ip.getPixels();
imageByteBuffer.position(0);
int index = 0;
while(imageByteBuffer.hasRemaining())
data[index++] = imageByteBuffer.getShort();
IJ.saveAs(imp, "PNG", imageFullPathName); // looks OK
ip.setLut(Shared.getLUT());
imp.setProcessor("LUT", ip);
IJ.saveAs(imp, "PNG", imageDisplayFolderPath);
--
When I was 12 I thought I would live forever.
So far, so good.
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html