[ImageJ-devel] LUT ranges

Aivar Grislis grislis at wisc.edu
Tue May 14 13:56:12 CDT 2013

This e-mail discusses some issues regarding what I would call the LUT 
range, the min/max value that a LUT is mapped to.

My motivation comes from SLIM Plugin:  In SLIM Plugin the min/max LUT 
range is used to colorized fitted pixels and also to control the range 
of generated histograms.  Suppose a user has fitted some data that has 
been gathered for multiple spectral channels.  It would be useful to be 
able to combine all of the channels when setting min/max, to see how the 
channels relate to each other, and also to be able to set an individual 
channel min/max independently, to zoom in on an individual channel.  I 
can discuss further upon request.

IJ1 only supported one min/max range per image, so only a combined 
channels LUT range is possible.  IJ2 supports more than one, but it's 

IJ2 currently supports individual RealLUTConverters and hence individual 
min/max ranges only for the special-cased CHANNEL Axis. Having 
individual RealLUTConverters is essential to the way RGB images are 
rendered (you need separate red, green, and blue converters).  However 
being able to specify separate ranges is actually not important in that 

(Currently there's a bug in DefaultDatasetView 
http://trac.imagej.net/ticket/1866 . For RGB images each channel 
converter is autoscaled independently, which only distorts the colors.  
You want to set the same scale for all.  Here's a thought experiment:  
Suppose you have an all-blue image with one gray pixel.  The only red in 
the entire image is in that gray pixel.  You don't want to autoscale 
that red component value so it becomes the maximal value possible.  See 
the attached image for 1866.)

For more flexibility I'd suggest adding two new properties to the Axis 
class:  One would be whether it supports multiple LUTs.  The other would 
be whether LUT ranges should be combined.

The default would be for both properties to be false.  We'd have to 
ensure they are both true in the RGB, CHANNEL Axis situation. Otherwise 
a programmer could tweak these settings before the dataset is displayed, 
especially when setting up a custom Axis type.


More information about the ImageJ-devel mailing list