Class JDialogThresholdRGB

  • All Implemented Interfaces:
    AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class JDialogThresholdRGB
    extends JDialogScriptableBase
    implements AlgorithmInterface

    Title: JDialogThresholdRGB

    Description: dialog for running RGB threshold algorithm on color images

    Copyright: Copyright (c) 2003

    Company:

    Version:
    1.0
    Author:
    linkb
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JDialog

        javax.swing.JDialog.AccessibleJDialog
      • Nested classes/interfaces inherited from class java.awt.Dialog

        java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
      • Nested classes/interfaces inherited from class java.awt.Window

        java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent event)
      Closes dialog box when the OK button is pressed and calls the algorithm.
      void algorithmPerformed​(AlgorithmBase algorithm)
      This method is required if the AlgorithmPerformed interface is implemented.
      private javax.swing.JPanel buildThresholdPanel​(int panelNum)
      Builds each threshold panel (red, green, and blue).
      protected void callAlgorithm()
      Once all the necessary variables are set, call the threshold rgb algorithm based on what type of image this is and whether or not there is a separate destination image.
      protected void doPostAlgorithmActions()
      Used to perform actions after the execution of the algorithm is completed (e.g., put the result image in the image table).
      void focusLost​(java.awt.event.FocusEvent event)
      When the user clicks the mouse out of a text field, resets the necessary variables.
      ModelImage getResultImage()
      Accessor that returns the image.
      private void init()
      Sets up the GUI (panels, buttons, etc) and displays it on the screen.
      void itemStateChanged​(java.awt.event.ItemEvent event)
      Monitors the checkboxes and handles events according (enable/disable).
      void runFromLUTFrame​(ModelImage im, float[] red, float[] green, float[] blue, float[] fillV, boolean isInverse)
      Function to run the threshold algorithm from the ViewJFrameHistoRGB.
      void setDisplayLocNew()
      Accessor that sets the display loc variable to new, so that a new image is created once the algorithm completes.
      void setDisplayLocReplace()
      Accessor that sets the display loc variable to replace, so the current image is replaced once the algorithm completes.
      void setFillValues​(float[] scale)
      Accessor that sets the fill value.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      void setRegionFlag​(boolean flag)
      Accessor that sets the region flag.
      void setThresholdB​(float[] thresB)
      Sets the blue threshold.
      void setThresholdG​(float[] thresG)
      Sets the green threshold.
      void setThresholdR​(float[] thresR)
      Sets the red threshold (float[2]... 1st is lower, 2nd is upper)
      private boolean setVariables()
      Use the GUI results to set up the variables needed to run the algorithm.
      protected void storeParamsFromGUI()
      Record the parameters just used to run this algorithm in a script.
      • Methods inherited from class javax.swing.JDialog

        addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Dialog

        addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Use serialVersionUID for interoperability.
        See Also:
        Constant Field Values
      • applyToAllBox

        private javax.swing.JCheckBox applyToAllBox
        false = apply algorithm only to VOI regions apply same threshold to all.
      • applyToBlueBox

        private javax.swing.JCheckBox applyToBlueBox
        enable blue threshold.
      • applyToGreenBox

        private javax.swing.JCheckBox applyToGreenBox
        enable green threshold.
      • applyToRedBox

        private javax.swing.JCheckBox applyToRedBox
        enable red threshold.
      • displayLoc

        private int displayLoc
        DOCUMENT ME!
      • fillValues

        private float[] fillValues
        DOCUMENT ME!
      • inverseOptionBox

        private javax.swing.JCheckBox inverseOptionBox
        choose inverse or no inverse threshold.
      • isInverse

        private boolean isInverse
        inverse?
      • maxs

        private float[] maxs
        DOCUMENT ME!
      • mins

        private float[] mins
        Minimum and maximum values for red/gree/blue.
      • newImage

        private javax.swing.JRadioButton newImage
        DOCUMENT ME!
      • regionFlag

        private boolean regionFlag
        or if the source image is to be replaced.
      • replaceImage

        private javax.swing.JRadioButton replaceImage
        DOCUMENT ME!
      • resultImage

        private ModelImage resultImage
        DOCUMENT ME!
      • textFills

        private javax.swing.JTextField[] textFills
        DOCUMENT ME!
      • textThreshold1

        private javax.swing.JTextField[] textThreshold1
        Text fields for lower & upper thresholds and fill values.
      • textThreshold2

        private javax.swing.JTextField[] textThreshold2
        DOCUMENT ME!
      • thresholdB

        private float[] thresholdB
        DOCUMENT ME!
      • thresholdG

        private float[] thresholdG
        DOCUMENT ME!
      • thresholdLabels1

        private javax.swing.JLabel[] thresholdLabels1
        DOCUMENT ME!
      • thresholdLabels2

        private javax.swing.JLabel[] thresholdLabels2
        DOCUMENT ME!
      • thresholdR

        private float[] thresholdR
        lower [0] and upper [1] thresholds for RGB.
      • titles

        private java.lang.String[] titles
        DOCUMENT ME!
      • useChannel

        private boolean[] useChannel
        tells whether or not to use the channels (red=0, green=1, blue=2).
      • VOIRegions

        private javax.swing.JRadioButton VOIRegions
        DOCUMENT ME!
      • wholeImage

        private javax.swing.JRadioButton wholeImage
        DOCUMENT ME!
    • Constructor Detail

      • JDialogThresholdRGB

        public JDialogThresholdRGB()
        Empty constructor needed for dynamic instantiation (used during scripting).
      • JDialogThresholdRGB

        public JDialogThresholdRGB​(ModelImage im)
        Used primarily for the script to store variables and run the algorithm. No actual dialog will appear but the set up info and result image will be stored here.
        Parameters:
        im - Source image.
      • JDialogThresholdRGB

        public JDialogThresholdRGB​(java.awt.Frame theParentFrame,
                                   ModelImage im)
        Creates a new JDialogThresholdRGB object.
        Parameters:
        theParentFrame - Parent frame.
        im - Source image.
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        Closes dialog box when the OK button is pressed and calls the algorithm.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Overrides:
        actionPerformed in class JDialogBase
        Parameters:
        event - Event that triggers function.
      • algorithmPerformed

        public void algorithmPerformed​(AlgorithmBase algorithm)
        This method is required if the AlgorithmPerformed interface is implemented. It is called by the algorithms when it has completed or failed to to complete, so that the dialog can be display the result image and/or clean up.
        Specified by:
        algorithmPerformed in interface AlgorithmInterface
        Parameters:
        algorithm - Algorithm that caused the event.
      • focusLost

        public void focusLost​(java.awt.event.FocusEvent event)
        When the user clicks the mouse out of a text field, resets the necessary variables. In this case, it also handles a bug involving when the focusGained and focusLost functions are called by turning off the ability of the text fields to call those functions.
        Specified by:
        focusLost in interface java.awt.event.FocusListener
        Overrides:
        focusLost in class JDialogBase
        Parameters:
        event - Event that triggers this function.
      • getResultImage

        public ModelImage getResultImage()
        Accessor that returns the image.
        Returns:
        The result image.
      • itemStateChanged

        public void itemStateChanged​(java.awt.event.ItemEvent event)
        Monitors the checkboxes and handles events according (enable/disable).
        Specified by:
        itemStateChanged in interface java.awt.event.ItemListener
        Overrides:
        itemStateChanged in class JDialogBase
        Parameters:
        event - ItemEvent
      • runFromLUTFrame

        public void runFromLUTFrame​(ModelImage im,
                                    float[] red,
                                    float[] green,
                                    float[] blue,
                                    float[] fillV,
                                    boolean isInverse)
        Function to run the threshold algorithm from the ViewJFrameHistoRGB.
        Parameters:
        im - ModelImage the image
        red - float[] red threshold
        green - float[] green threshold
        blue - float[] blue threshold
        fillV - float[] fill values
        isInverse - boolean (inverse threshold or not)
      • setDisplayLocNew

        public void setDisplayLocNew()
        Accessor that sets the display loc variable to new, so that a new image is created once the algorithm completes.
      • setDisplayLocReplace

        public void setDisplayLocReplace()
        Accessor that sets the display loc variable to replace, so the current image is replaced once the algorithm completes.
      • setFillValues

        public void setFillValues​(float[] scale)
        Accessor that sets the fill value. Will not be used if writing out a binary image.
        Parameters:
        scale - Value to set fill value to.
      • setRegionFlag

        public void setRegionFlag​(boolean flag)
        Accessor that sets the region flag.
        Parameters:
        flag - true indicates the whole image is blurred, false indicates a region.
      • setThresholdB

        public void setThresholdB​(float[] thresB)
        Sets the blue threshold.
        Parameters:
        thresB - float[]
      • setThresholdG

        public void setThresholdG​(float[] thresG)
        Sets the green threshold.
        Parameters:
        thresG - float[]
      • setThresholdR

        public void setThresholdR​(float[] thresR)
        Sets the red threshold (float[2]... 1st is lower, 2nd is upper)
        Parameters:
        thresR - float[]
      • callAlgorithm

        protected void callAlgorithm()
        Once all the necessary variables are set, call the threshold rgb algorithm based on what type of image this is and whether or not there is a separate destination image.
        Specified by:
        callAlgorithm in class JDialogScriptableBase
      • doPostAlgorithmActions

        protected void doPostAlgorithmActions()
        Used to perform actions after the execution of the algorithm is completed (e.g., put the result image in the image table). Defaults to no action, override to actually have it do something.
        Overrides:
        doPostAlgorithmActions in class JDialogScriptableBase
      • setGUIFromParams

        protected void setGUIFromParams()
        Set the dialog GUI using the script parameters while running this algorithm as part of a script.
        Specified by:
        setGUIFromParams in class JDialogScriptableBase
      • buildThresholdPanel

        private javax.swing.JPanel buildThresholdPanel​(int panelNum)
        Builds each threshold panel (red, green, and blue).
        Parameters:
        panelNum - int 0-2
        Returns:
        JPanel
      • init

        private void init()
        Sets up the GUI (panels, buttons, etc) and displays it on the screen.
      • setVariables

        private boolean setVariables()
        Use the GUI results to set up the variables needed to run the algorithm.
        Returns:
        true if parameters set successfully, false otherwise.