Skip to content

Initial display range min/max for 32-bit floating images #273

@abstracted1

Description

@abstracted1

What kind of logic does ImageJ use when computing the initial display range for 32-bit floating images?

I need to replicate this calculation (outside of ImageJ) for the lower/upper display range histogram levels (on image load).

Upper histogram level

From what I observe, the upper histogram value seems to be consistently equivalent to the 99.9% percentile of the histogram.

Lower histogram level

However, the lower histogram value does not seem to be calculated in the same fashion. Opening various images of mine (sorry I cannot share the images), I find that the lower value percentile varies between 0.1-3% (generally 0.1% seems rather common), depending on the image. How is this lower value calculated?

Observations

  • The "Auto" contrast in the B/C window (even when repeatedly clicked) produces different display range extents than the initial image load.
  • Calling resetMinAndMax() on the image's FloatProcessor sets the display range to the actual minimum/maximum value of the image. (I would have thought this would get called during image load to initialize the display range, but appears not).
  • Older documentation (https://imagej.net/ij/docs/guide/146-28.html) has the sentence: “It may happen that the initial windowing performed by ImageJ on these high bit–depth (or HDR[?]) images is suboptimal.”. This sounds related but is missing details.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions