Class AlgorithmRGBtoGray

java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.utilities.AlgorithmRGBtoGray
All Implemented Interfaces:
ActionListener, WindowListener, Runnable, EventListener

public class AlgorithmRGBtoGray extends AlgorithmBase
Simple algorithm that converts an RGB image to a single greyscale image.

User can specify red, green, and blue scaling factors Default is equal weighting new gray value = ( R + G + B) / 3 if no threshold averaging; if thresholdAverage is true, only average values above trheshold

The standard for computer graphics is > Y = 0.299*R + 0.587*G + 0.114*B > > That assumes both Y and RGB are in the range 0:255 > > BT.601 calls for Y to be limited to 16:235, if you want > that multiply the constants by 219/255 and add 16 to Y.

Yes, but Y is not pure luminance, the other components it might be PbPr, CbCr carry color information that affect perceived brightness.

Version:
1.0 Dec 30, 1999
Author:
Matthew J. McAuliffe, Ph.D.
  • Field Details

    • intensityAverage

      private boolean intensityAverage
      If true indicates that the result image is an average of the three channels. Default is false
    • redValue

      private float redValue
      Weighting values for the red, green, and blue channels. Default all channels = 0.33333
    • greenValue

      private float greenValue
      Weighting values for the red, green, and blue channels. Default all channels = 0.33333
    • blueValue

      private float blueValue
      Weighting values for the red, green, and blue channels. Default all channels = 0.33333
    • thirdValue

      private float thirdValue
      This value equal one third (0.3333333).
    • threshold

      private float threshold
      Only average values above threshold.
    • thresholdAverage

      private boolean thresholdAverage
      If true only average values above threshold.
    • equalRange

      private boolean equalRange
    • minR

      private float minR
    • maxR

      private float maxR
    • minG

      private float minG
    • maxG

      private float maxG
    • minB

      private float minB
    • maxB

      private float maxB
  • Constructor Details

    • AlgorithmRGBtoGray

      public AlgorithmRGBtoGray(ModelImage srcImg)
      Creates a new AlgorithmRGBtoGray object.
      Parameters:
      srcImg - source image model
    • AlgorithmRGBtoGray

      public AlgorithmRGBtoGray(ModelImage destImg, ModelImage srcImg)
      Creates a new AlgorithmRGBtoGray object.
      Parameters:
      destImg - image model where result image is to stored
      srcImg - source image model
    • AlgorithmRGBtoGray

      public AlgorithmRGBtoGray(ModelImage srcImg, float redValue, float greenValue, float blueValue, boolean thresholdAverage, float threshold, boolean intensityAverage, boolean equalRange, float minR, float maxR, float minG, float maxG, float minB, float maxB)
      Creates a new AlgorithmRGBtoGray object.
      Parameters:
      srcImg - source image model
      redValue - weighting of the red channel
      greenValue - weighting of the green channel
      blueValue - weighting of the blue channel
      thresholdAverage - if true only average values above threshold
      threshold - DOCUMENT ME!
      intensityAverage - DOCUMENT ME!
    • AlgorithmRGBtoGray

      public AlgorithmRGBtoGray(ModelImage destImg, ModelImage srcImg, float redValue, float greenValue, float blueValue, boolean thresholdAverage, float threshold, boolean intensityAverage, boolean equalRange, float minR, float maxR, float minG, float maxG, float minB, float maxB)
      Creates a new AlgorithmRGBtoGray object.
      Parameters:
      destImg - image model where result image is to stored
      srcImg - source image model
      redValue - weighting of the red channel
      greenValue - weighting of the green channel
      blueValue - weighting of the blue channel
      thresholdAverage - if true only average values above threshold
      threshold - DOCUMENT ME!
      intensityAverage - DOCUMENT ME!
  • Method Details

    • finalize

      public void finalize()
      Prepares this class for destruction.
      Overrides:
      finalize in class AlgorithmBase
    • runAlgorithm

      public void runAlgorithm()
      Starts the program.
      Specified by:
      runAlgorithm in class AlgorithmBase
    • calcStoreInDest

      private void calcStoreInDest()
      Calculates the gray scale image.
    • calcStoreInPlace

      private void calcStoreInPlace()
      Calculates the gray scale image. Must use getSrcImage() after running this routine