NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.

The ImageJ project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Ticket #2032 (new defect)

Opened 2013-12-02T16:32:45-06:00

Better LUT ranges

Reported by: aivar Owned by: curtis
Priority: major Milestone: imagej2-b8-analysis
Component: ImgLib2 Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking:

Description

Originally posted to the  imagej-devel mailing list:

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 limited:

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 case.

(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.