Class AdditiveChannelInfo

java.lang.Object
qupath.lib.display.AdditiveChannelInfo
All Implemented Interfaces:
ChannelDisplayInfo, ChannelDisplayInfo.ModifiableChannelDisplayInfo

public class AdditiveChannelInfo extends Object
Class for combining channels additively, then providing controls on the resulting RGB image.

This was created to support the display of non-8-bit brightfield images in a similar way to RGB images.

Since:
v0.6.0
  • Field Details

    • minAllowed

      protected float minAllowed
    • maxAllowed

      protected float maxAllowed
    • minDisplay

      protected float minDisplay
    • maxDisplay

      protected float maxDisplay
    • clipToAllowed

      protected boolean clipToAllowed
  • Constructor Details

  • Method Details

    • getName

      public String getName()
      Description copied from interface: ChannelDisplayInfo
      Get the channel name. This may also be returned by the toString() method.
      Returns:
    • getValueAsString

      public String getValueAsString(BufferedImage img, int x, int y)
      Description copied from interface: ChannelDisplayInfo
      Get a string representation of a pixel's value. This might be a single number, or 3 numbers for an RGB image where the channel includes all values.
      Parameters:
      img -
      x -
      y -
      Returns:
    • getRGB

      public int getRGB(BufferedImage img, int x, int y, ChannelDisplayMode mode)
      Description copied from interface: ChannelDisplayInfo
      Get the RGB value that would be used to display a particular pixel
      Parameters:
      img -
      x -
      y -
      mode -
      Returns:
    • getRGB

      public int[] getRGB(BufferedImage img, int[] rgb, ChannelDisplayMode mode)
      Description copied from interface: ChannelDisplayInfo
      Get the RGB values that would be used to display all the pixels of an image
      Parameters:
      img -
      rgb -
      mode -
      Returns:
    • updateRGBAdditive

      public void updateRGBAdditive(BufferedImage img, int[] rgb, ChannelDisplayMode mode)
      Description copied from interface: ChannelDisplayInfo
      Update an array of existing pixels (packed RGB) additively using the colors to display a specified image. May throw an UnsupportedOperationException if isAdditive() returns false;
      Parameters:
      img -
      rgb -
      mode -
    • doesSomething

      public boolean doesSomething()
      Description copied from interface: ChannelDisplayInfo
      Returns true if this does something - anything - and false otherwise. For example, this will return false if we have an RGB image with no transformations of any kind applied (e.g. brightness/contrast)
      Returns:
    • isAdditive

      public boolean isAdditive()
      Description copied from interface: ChannelDisplayInfo
      Returns true if this channel can be used additively to create a composite image display; returns false if this channel wants all the color information to itself, so can't be displayed with others.
      Returns:
    • getColor

      public Integer getColor()
      Description copied from interface: ChannelDisplayInfo
      Predominate color used when this ChannelDisplayInfo uses a Color LUT (e.g. Color.RED for a red channel). Returns null if there is no appropriate color choice, or the image is RGB.
      Returns:
    • getChannels

      public List<DirectServerChannelInfo> getChannels()
      Get an unmodifiable list of the channels that are merged here for display.
      Returns:
      a list of channels
    • getImageData

      protected ImageData<BufferedImage> getImageData()
    • getImageServer

      protected ImageServer<BufferedImage> getImageServer()
    • setMinMaxAllowed

      public void setMinMaxAllowed(float minAllowed, float maxAllowed)
      Description copied from interface: ChannelDisplayInfo.ModifiableChannelDisplayInfo
      Set the maximum permissible range for the image display.

      For an 8-bit image, that should be 0 and 255.

      For a 16-bit image, fewer bits might actually be used... therefore the full range of 0-2^16-1 may be too much.

      Also, for a 32-bit floating point image the limits are rather harder to define in a general way. This method makes it possible to restrict the permissible range to something sensible. Brightness/contrast/min/max sliders may make use of this.

      Specified by:
      setMinMaxAllowed in interface ChannelDisplayInfo.ModifiableChannelDisplayInfo
      Parameters:
      minAllowed -
      maxAllowed -
    • isBrightnessContrastRescaled

      public boolean isBrightnessContrastRescaled()
      Description copied from interface: ChannelDisplayInfo
      Returns true if rescaling according to min & max display levels is applied, false if the full display range is used.
      Specified by:
      isBrightnessContrastRescaled in interface ChannelDisplayInfo
      Returns:
    • setMinDisplay

      public void setMinDisplay(float minDisplay)
      Description copied from interface: ChannelDisplayInfo.ModifiableChannelDisplayInfo
      Set the min display value for this channel. Note that it is *strongly* advised to use ImageDisplay.setMinMaxDisplay instead since this helps ensure that the ImageDisplay fires appropriate events etc.
      Specified by:
      setMinDisplay in interface ChannelDisplayInfo.ModifiableChannelDisplayInfo
      Parameters:
      minDisplay -
      See Also:
    • setMaxDisplay

      public void setMaxDisplay(float maxDisplay)
      Description copied from interface: ChannelDisplayInfo.ModifiableChannelDisplayInfo
      Set the max display value for this channel. Note that it is *strongly* advised to use ImageDisplay.setMinMaxDisplay instead since this helps ensure that the ImageDisplay fires appropriate events etc.
      Specified by:
      setMaxDisplay in interface ChannelDisplayInfo.ModifiableChannelDisplayInfo
      Parameters:
      maxDisplay -
      See Also:
    • getMinAllowed

      public float getMinAllowed()
      Description copied from interface: ChannelDisplayInfo
      Get the min allowed display value. This is only a hint.
      Specified by:
      getMinAllowed in interface ChannelDisplayInfo
      Returns:
    • getMaxAllowed

      public float getMaxAllowed()
      Description copied from interface: ChannelDisplayInfo
      Get the max allowed display value. This is only a hint.
      Specified by:
      getMaxAllowed in interface ChannelDisplayInfo
      Returns:
    • getMinDisplay

      public float getMinDisplay()
      Description copied from interface: ChannelDisplayInfo
      Get the min display value. This is used to control the brightness/contrast when painting.
      Specified by:
      getMinDisplay in interface ChannelDisplayInfo
      Returns:
    • getMaxDisplay

      public float getMaxDisplay()
      Description copied from interface: ChannelDisplayInfo
      Get the max display value. This is used to control the brightness/contrast when painting.
      Specified by:
      getMaxDisplay in interface ChannelDisplayInfo
      Returns:
    • updateRGBAdditive

      public int updateRGBAdditive(BufferedImage img, int x, int y, int rgb, ChannelDisplayMode mode)
      Description copied from interface: ChannelDisplayInfo
      Update an existing pixel (packed RGB) additively using the color used to display a specified one
      Specified by:
      updateRGBAdditive in interface ChannelDisplayInfo
      Parameters:
      img -
      x -
      y -
      rgb -
      mode -
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object