Class JDialogMedian

  • All Implemented Interfaces:
    AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, ActionDiscovery, 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 JDialogMedian
    extends JDialogScriptableBase
    implements AlgorithmInterface, ActionDiscovery, ScriptableActionInterface
    Dialog to get user input, then call the algorithm. The user has the option to generate a new image or replace the source image. In addition the user can select having the algorithm applied to whole image or to the VOI regions. It should be noted that the algorithms are executed in their own thread.
    Version:
    1.0; 17 February 2000
    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
    • Constructor Summary

      Constructors 
      Constructor Description
      JDialogMedian()
      Empty constructor needed for dynamic instantiation (used during scripting).
      JDialogMedian​(java.awt.Frame theParentFrame, ModelImage im)
      Creates a new JDialogMedian object.
    • 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 void buildKernelShapeComboBox​(boolean singleSlices)
      Creates the combo-box that allows user to select the shape of the kernel (mask).
      private void buildKernelSizeComboBox​(boolean singleSlices)
      Creates the combo-box that allows user to select the size of the kernel (mask).
      private void buildMaximumSizeComboBox​(boolean singleSlices)
      Creates the combo-box that allows user to select the maximum size of the kernel (mask) when adaptive median filtering is selected.
      protected void callAlgorithm()
      Once all the necessary variables are set, call the median algorithm based on what type of image this is and whether or not there is a separate destination image.
      ParameterTable createInputParameters()
      Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used in setGUIFromParams()).
      ParameterTable createOutputParameters()
      Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).
      private void determineKernelSize()
      Associate one side of the kernel size with selectBox choice.
      private void determineMaximumSize()
      Associate one side of the maximum kernel size with selectBox choice when adaptive median filtering is selected.
      protected void doPostAlgorithmActions()
      Store the result image in the script runner's image table now that the action execution is finished.
      ActionMetadata getActionMetadata()
      Return meta-information about this discoverable action for categorization and labeling purposes.
      java.lang.String getOutputImageName​(java.lang.String imageParamName)
      Returns the name of an image output by this algorithm, the image returned depends on the parameter label given (which can be used to retrieve the image object from the image registry).
      ModelImage getResultImage()
      Accessor that returns the image.
      private void init()
      Sets up the GUI (panels, buttons, etc) and displays it on the screen.
      boolean isActionComplete()
      Returns whether the action has successfully completed its execution.
      void setBlue​(boolean flag)
      Accessor that sets the color flag.
      void setColorFilterType​(int colorFilterType)
      Accessor that sets if all colors are component filtered, vector magnitude filtered, vector direction filtered, or adaptive truncated vector median filtered.
      void setDelta​(float delta)  
      void setFilterType​(int filterType)  
      void setGreen​(boolean flag)
      Accessor that sets the color flag.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      void setImage25D​(boolean flag)
      Accessor that sets the slicing flag.
      void setIters​(int num)
      Accessor that sets the number of iterations.
      void setKernelShape​(int shape)
      Accessor that sets the kernel shape.
      void setKernelSize​(int size)
      Accessor that sets the kernel size.
      void setMaximumSize​(int maximumSize)
      Accessor that sets the maximum size the kernel mask can be increased to when adaptive median filtering is used.
      void setRed​(boolean flag)
      Accessor that sets the color flag.
      void setStdDev​(float dev)
      Accessor that sets the standard deviation.
      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
      • COMPONENT_FILTER

        public static final int COMPONENT_FILTER
        DOCUMENT ME!
        See Also:
        Constant Field Values
      • VECTOR_MAGNITUDE_FILTER

        public static final int VECTOR_MAGNITUDE_FILTER
        DOCUMENT ME!
        See Also:
        Constant Field Values
      • VECTOR_DIRECTION_FILTER

        public static final int VECTOR_DIRECTION_FILTER
        DOCUMENT ME!
        See Also:
        Constant Field Values
      • ADAPTIVE_TRUNCATED_VECTOR_MEDIAN_FILTER

        public static final int ADAPTIVE_TRUNCATED_VECTOR_MEDIAN_FILTER
        See Also:
        Constant Field Values
      • SYMMETRICAL_TRIANGULAR_FUZZY_TRUNCATED_MEDIAN

        public static final int SYMMETRICAL_TRIANGULAR_FUZZY_TRUNCATED_MEDIAN
        See Also:
        Constant Field Values
      • typeGroup

        private javax.swing.ButtonGroup typeGroup
      • standardButton

        private javax.swing.JRadioButton standardButton
      • adaptiveButton

        private javax.swing.JRadioButton adaptiveButton
      • truncatedButton

        private javax.swing.JRadioButton truncatedButton
      • fuzzyTruncatedButton

        private javax.swing.JRadioButton fuzzyTruncatedButton
      • labelDelta

        private javax.swing.JLabel labelDelta
      • textDelta

        private javax.swing.JTextField textDelta
      • delta

        private float delta
      • blue

        private boolean blue
        DOCUMENT ME!
      • blueChannel

        private javax.swing.JCheckBox blueChannel
        DOCUMENT ME!
      • bySlice

        private javax.swing.JRadioButton bySlice
        DOCUMENT ME!
      • comboBoxKernelShape

        private javax.swing.JComboBox comboBoxKernelShape
        DOCUMENT ME!
      • comboBoxKernelSize

        private javax.swing.JComboBox comboBoxKernelSize
        DOCUMENT ME!
      • comboBoxMaximumSize

        private javax.swing.JComboBox comboBoxMaximumSize
        DOCUMENT ME!
      • componentButton

        private javax.swing.JRadioButton componentButton
        DOCUMENT ME!
      • filterType

        private int filterType
      • colorFilterType

        private int colorFilterType
        DOCUMENT ME!
      • green

        private boolean green
        DOCUMENT ME!
      • greenChannel

        private javax.swing.JCheckBox greenChannel
        DOCUMENT ME!
      • image25D

        private boolean image25D
        false = apply algorithm only to VOI regions.
      • iters

        private int iters
        DOCUMENT ME!
      • kernelShape

        private int kernelShape
        DOCUMENT ME!
      • kernelSize

        private int kernelSize
        DOCUMENT ME!
      • labelMaximumSize

        private javax.swing.JLabel labelMaximumSize
        DOCUMENT ME!
      • labelSTDDeviation

        private javax.swing.JLabel labelSTDDeviation
        DOCUMENT ME!
      • maximumSize

        private int maximumSize
        DOCUMENT ME!
      • red

        private boolean red
        DOCUMENT ME!
      • redChannel

        private javax.swing.JCheckBox redChannel
        DOCUMENT ME!
      • resultImage

        private ModelImage resultImage
        DOCUMENT ME!
      • stdDev

        private float stdDev
        DOCUMENT ME!
      • textNIter

        private javax.swing.JTextField textNIter
        DOCUMENT ME!
      • textSTDDeviation

        private javax.swing.JTextField textSTDDeviation
        DOCUMENT ME!
      • titles

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

        private javax.swing.JRadioButton vectorDirectionButton
        DOCUMENT ME!
      • vectorGroup

        private javax.swing.ButtonGroup vectorGroup
        DOCUMENT ME!
      • vectorMagnitudeButton

        private javax.swing.JRadioButton vectorMagnitudeButton
        DOCUMENT ME!
      • ATVMFButton

        private javax.swing.JRadioButton ATVMFButton
      • wholeVolume

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

      • JDialogMedian

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

        public JDialogMedian​(java.awt.Frame theParentFrame,
                             ModelImage im)
        Creates a new JDialogMedian 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 algorithm 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.
      • getResultImage

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

        public void setFilterType​(int filterType)
        Parameters:
        filterType -
      • setBlue

        public void setBlue​(boolean flag)
        Accessor that sets the color flag.
        Parameters:
        flag - true indicates ARG image, blue.
      • setColorFilterType

        public void setColorFilterType​(int colorFilterType)
        Accessor that sets if all colors are component filtered, vector magnitude filtered, vector direction filtered, or adaptive truncated vector median filtered.
        Parameters:
        colorFilterType - DOCUMENT ME!
      • setGreen

        public void setGreen​(boolean flag)
        Accessor that sets the color flag.
        Parameters:
        flag - true indicates ARG image, green.
      • setImage25D

        public void setImage25D​(boolean flag)
        Accessor that sets the slicing flag.
        Parameters:
        flag - true indicates slices should be processed independently.
      • setIters

        public void setIters​(int num)
        Accessor that sets the number of iterations.
        Parameters:
        num - Value to set iterations to (should be between 1 and 20).
      • setKernelShape

        public void setKernelShape​(int shape)
        Accessor that sets the kernel shape.
        Parameters:
        shape - Value to set size to (0 == square, 1 == cross).
      • setKernelSize

        public void setKernelSize​(int size)
        Accessor that sets the kernel size.
        Parameters:
        size - Value to set size to (3 == 3x3, 5 == 5x5, etc.)
      • setMaximumSize

        public void setMaximumSize​(int maximumSize)
        Accessor that sets the maximum size the kernel mask can be increased to when adaptive median filtering is used.
        Parameters:
        maximumSize - DOCUMENT ME!
      • setRed

        public void setRed​(boolean flag)
        Accessor that sets the color flag.
        Parameters:
        flag - true indicates ARG image, red.
      • setStdDev

        public void setStdDev​(float dev)
        Accessor that sets the standard deviation.
        Parameters:
        dev - Value to set the standard deviation to (should be between 0.0 and 9.9).
      • setDelta

        public void setDelta​(float delta)
        Parameters:
        delta -
      • callAlgorithm

        protected void callAlgorithm()
        Once all the necessary variables are set, call the median 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()
        Store the result image in the script runner's image table now that the action execution is finished.
        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
      • buildKernelShapeComboBox

        private void buildKernelShapeComboBox​(boolean singleSlices)
        Creates the combo-box that allows user to select the shape of the kernel (mask).
        Parameters:
        singleSlices - DOCUMENT ME!
      • buildKernelSizeComboBox

        private void buildKernelSizeComboBox​(boolean singleSlices)
        Creates the combo-box that allows user to select the size of the kernel (mask).
        Parameters:
        singleSlices - DOCUMENT ME!
      • buildMaximumSizeComboBox

        private void buildMaximumSizeComboBox​(boolean singleSlices)
        Creates the combo-box that allows user to select the maximum size of the kernel (mask) when adaptive median filtering is selected.
        Parameters:
        singleSlices - DOCUMENT ME!
      • determineKernelSize

        private void determineKernelSize()
        Associate one side of the kernel size with selectBox choice.
      • determineMaximumSize

        private void determineMaximumSize()
        Associate one side of the maximum kernel size with selectBox choice when adaptive median filtering is selected.
      • 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.
      • getActionMetadata

        public ActionMetadata getActionMetadata()
        Return meta-information about this discoverable action for categorization and labeling purposes.
        Specified by:
        getActionMetadata in interface ActionDiscovery
        Returns:
        Metadata for this action.
      • createInputParameters

        public ParameterTable createInputParameters()
        Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used in setGUIFromParams()).
        Specified by:
        createInputParameters in interface ActionDiscovery
        Returns:
        A parameter table listing the inputs of this algorithm.
      • createOutputParameters

        public ParameterTable createOutputParameters()
        Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).
        Specified by:
        createOutputParameters in interface ActionDiscovery
        Returns:
        A parameter table listing the outputs of this algorithm.
      • getOutputImageName

        public java.lang.String getOutputImageName​(java.lang.String imageParamName)
        Returns the name of an image output by this algorithm, the image returned depends on the parameter label given (which can be used to retrieve the image object from the image registry).
        Specified by:
        getOutputImageName in interface ActionDiscovery
        Parameters:
        imageParamName - The output image parameter label for which to get the image name.
        Returns:
        The image name of the requested output image parameter label.
      • isActionComplete

        public boolean isActionComplete()
        Returns whether the action has successfully completed its execution.
        Specified by:
        isActionComplete in interface ActionDiscovery
        Returns:
        True, if the action is complete. False, if the action failed or is still running.