Class ViewJComponentHistoLUT

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public class ViewJComponentHistoLUT extends ViewJComponentHLUTBase
This class extends the ViewJComponentHLUTBase class and used to coordinate how a histogram and LUT for an image are to be displayed to the screen. For display purposes, this component has a LUT Model. Note y inversion in transfer segment because graphical origin is in upper left corner.
             255     ^                __________
                     |               /
                     |              /
                     |             /  invalid input: '<'------- Transfer function
                     |            /
              L      |           /
              U      |          /
              T      |         /
                     |        /
                     |       /
                     |______/
              0      |________________________________>

                      min                         max

                              Image intensity
 

The transfer function ( member of the LUT class) dictates how the image intensity values are converted into the LUT.

Version:
0.1 Aug 1, 1997
Author:
Matthew J. McAuliffe, Ph.D.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Use serialVersionUID for interoperability.
      See Also:
    • lut

      DOCUMENT ME!
  • Constructor Details

    • ViewJComponentHistoLUT

      public ViewJComponentHistoLUT(HistoLUTParent _histoFrame, ModelHistogram _histo, ModelLUT _lut, ModelImage _image)
      Creates new component histogram LUT.
      Parameters:
      _histoFrame - Frame where histogram is to be displayed
      _histo - histogram model
      _lut - lut used to display histogram
      _image - image of the displayed histogram and associated LUT
  • Method Details

    • addFunctionPoint

      public void addFunctionPoint(float x, float y)
      Add a new function point to the current LUT transfer function.
      Specified by:
      addFunctionPoint in class ViewJComponentHLUTBase
      Parameters:
      x - the x position within the component to add the new point
      y - the y position within the component to add the new point
    • checkProximityToTransferFunction

      public void checkProximityToTransferFunction(float px, float py, boolean remove)
      Check to see if the position of the mouse is close to one of the points in the LUT transfer function or the line drawn in between the points.
      Specified by:
      checkProximityToTransferFunction in class ViewJComponentHLUTBase
      Parameters:
      px - the x position within the component
      py - the y position within the component
      remove - whether we want to remove a point (assuming that we are near one)
    • ctMode

      public void ctMode(int preset1, int preset2)
      Sets mode to CT and sets range to CT presets.
      Parameters:
      preset1 - first CT preset
      preset2 - second CT preset
    • dispose

      public void dispose()
      Sets variables to null and gets rid of frame.
      Overrides:
      dispose in class ViewJComponentHLUTBase
    • dragPoint

      public void dragPoint(MouseEvent mouseEvent)
      Drag a point on the Histo LUT to another value.
      Parameters:
      mouseEvent - the mouse dragged event (passed on from the containing panel)
    • setLinearIndex

      private float setLinearIndex(float mx, float my)
      Checks boundaries for new dragged point in LUT.
      Parameters:
      mx - new x value for point based on mouse movement
      my - new y value for point based on mouse movement
      Returns:
      the resulting x[index] based on boundary checks
    • dualThresholdMode

      public void dualThresholdMode(int newMode)
      Switch the histogram component to (inverse or regular) dual threshold mode.
      Specified by:
      dualThresholdMode in class ViewJComponentHLUTBase
      Parameters:
      newMode - either DUAL_THRESHOLD, DUAL_THRESHOLD_INV, or NO_THRESHOLD
    • evenDistribution

      public void evenDistribution()
      Evenly distributed the controls points of linear transfer function.
      Specified by:
      evenDistribution in class ViewJComponentHLUTBase
    • getLUT

      public ModelLUT getLUT()
      Get the lookup table associated with the image and histogram.
      Returns:
      returns the LUT used to display the image
    • getThresholdFill

      public float getThresholdFill()
      DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • getTransferFunction

      public TransferFunction getTransferFunction()
      Get the current transfer function we are working with.
      Overrides:
      getTransferFunction in class ViewJComponentHLUTBase
      Returns:
      the LUT tranfer function
    • linearMode

      public void linearMode()
      Sets mode to linear and shows component.
      Specified by:
      linearMode in class ViewJComponentHLUTBase
    • paintComponent

      public void paintComponent(Graphics g)
      Paints the component.
      Overrides:
      paintComponent in class ViewJComponentHLUTBase
      Parameters:
      g - graphics to paint in
    • removeClickedFunctionPoint

      public void removeClickedFunctionPoint()
      Remove the point of the LUT transfer function which the mouse is hovering over (determined by mouseMotion).
      Specified by:
      removeClickedFunctionPoint in class ViewJComponentHLUTBase
    • setLUT

      public void setLUT(ModelStorageBase newLUT)
      Change the lookup table associated with the image and histogram.
      Specified by:
      setLUT in class ViewJComponentHLUTBase
      Parameters:
      newLUT - the new lut
    • showHistogram

      public void showHistogram(ModelLUT LUT)
      Filters the histogram through the LUT and produces an int array (aRGB) that can be converted to a java image of the histogram for display purposes.
      Specified by:
      showHistogram in class ViewJComponentHLUTBase
      Parameters:
      LUT - LUT to filter with
    • updateCursor

      public void updateCursor(float _mx, float _my, int _index)
      Update the cursor position when mouse slider is moved.
      Parameters:
      _mx - cursor x postion.
      _my - cursor y position.
      _index - cursor index
    • updateCursorXPos

      public void updateCursorXPos(float _mx, float _my, int _index)
      Update the cursor position when mouse slider is moved.
      Parameters:
      _mx - cursor x postion.
      _my - cursor y position.
      _index - cursor index
    • finalize

      protected void finalize() throws Throwable
      Clean up some resources!
      Overrides:
      finalize in class ViewJComponentHLUTBase
      Throws:
      Throwable - DOCUMENT ME!