Class JDialogBrainSurfaceExtractor

    • 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)
      Handles events generated by the user interface, and takes appropriate action.
      void algorithmPerformed​(AlgorithmBase algorithm)
      This method is required if the AlgorithmPerformed interface is implemented.
      void callAlgorithm()
      Calls the algorithm.
      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).
      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).
      private void init()
      Makes the GUI elements of the dialog.
      boolean isActionComplete()
      Returns whether the action has successfully completed its execution.
      void setEdgeKernelSize​(float s)
      Accessor to set the edge detection kernel size.
      void setErosionIterations​(int iter)
      Accessor to set the number of erosions / dialations.
      void setExtractPaint​(boolean b)
      Accessor to set the extract to paint parameter.
      void setFillHoles​(boolean b)
      Accessor to set the fill holes parameter.
      void setFilterGaussianStdDev​(float s)
      Accessor to set the filter's gaussian standard deviation.
      void setFilterIterations​(int iter)
      Accessor to set the number of filter iterations.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      void setShowIntermediateImages​(boolean show)
      Accessor to set whether intermediate images will be produced.
      void setUseSeparable​(boolean use)
      Accessor to set whether to use the separable convolver for edge detection.
      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
      • closeKernelPixels

        private static final int closeKernelPixels
        The nuber of pixels to include in the initial closing kernel diameter.
        See Also:
        Constant Field Values
      • closeIterations

        private static final int closeIterations
        Number of closing operations to perform.
        See Also:
        Constant Field Values
      • closeKernelSize

        private float closeKernelSize
        Size of the kernel used in the closing operations.
      • closeKernelSizeTF

        private javax.swing.JTextField closeKernelSizeTF
        Text field used to enter the number of closings to perform.
      • edgeKernelSize

        private float edgeKernelSize
        Edge detection kernel size (.6 in Shattuck paper).
      • edgeKernelSizeTF

        private javax.swing.JTextField edgeKernelSizeTF
        Text field used to enter the edge detection kernel size.
      • erosion25D

        private boolean erosion25D
        Whether to process the slices of the 3D image separately while performing the erosion / dilation.
      • erosion25DCB

        private javax.swing.JCheckBox erosion25DCB
        Check box for indicating whether erosion / dilation should process slices independently.
      • erosionIterations

        private int erosionIterations
        Number of erosion / dilation operations to perform (2 in Shattuck paper).
      • erosionIterationsTF

        private javax.swing.JTextField erosionIterationsTF
        Text field used to enter the number of erosions / dilations.
      • extractPaint

        private boolean extractPaint
        Whether to extract the brain to paint instead of removing image data.
      • extractPaintCheckBox

        private javax.swing.JCheckBox extractPaintCheckBox
        Checkbox to extract the brain to paint instead of removing image data.
      • fillHoles

        private boolean fillHoles
        Whether to fill in all internal holes in the extracted brain.
      • fillHolesCB

        private javax.swing.JCheckBox fillHolesCB
        Checkbox for indicating whether to close all of the interior holes in the extracted brain.
      • filterGaussianStdDev

        private float filterGaussianStdDev
        Standard deviation of the filter's gaussian kernel.
      • filterGaussianStdDevTF

        private javax.swing.JTextField filterGaussianStdDevTF
        Text field used to enter the standard deviation of the filter's gaussian kernel.
      • filterIterations

        private int filterIterations
        Number of filter iterations.
      • filterIterationsTF

        private javax.swing.JTextField filterIterationsTF
        Text field used to enter the number of filter iterations.
      • image

        private ModelImage image
        The source image.
      • imageCopy

        private ModelImage imageCopy
        A copy of the source image to run the algorithm on.
      • imgName

        private java.lang.String imgName
        The original image name.
      • resultImage

        private ModelImage resultImage
        The result image.
      • showIntermediateImages

        private boolean showIntermediateImages
        Whether to show images from intermediate steps of the BSE algorithm.
      • showIntermediateImagesCB

        private javax.swing.JCheckBox showIntermediateImagesCB
        Checkbox to show images which can help in paramater tweaking.
      • userInterface

        private ViewUserInterface userInterface
        Reference to the main user interface.
      • useSeparable

        private boolean useSeparable
        Whether to use a separable convolver during edge detection.
      • useSeparableCB

        private javax.swing.JCheckBox useSeparableCB
        Checkbox to elect to use the separable convolver in the edge detection algorithm.
    • Constructor Detail

      • JDialogBrainSurfaceExtractor

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

        public JDialogBrainSurfaceExtractor​(java.awt.Frame theParentFrame,
                                            ModelImage im)
        Sets the appropriate variables.
        Parameters:
        theParentFrame - Parent frame.
        im - Source image.
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        Handles events generated by the user interface, and takes appropriate action.
        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 display the result image and/or clean up.
        Specified by:
        algorithmPerformed in interface AlgorithmInterface
        Parameters:
        algorithm - Algorithm that caused the event.
      • setEdgeKernelSize

        public void setEdgeKernelSize​(float s)
        Accessor to set the edge detection kernel size.
        Parameters:
        s - the kernel size for edge detection
      • setFillHoles

        public void setFillHoles​(boolean b)
        Accessor to set the fill holes parameter.
        Parameters:
        b - when true holes are filled.
      • setExtractPaint

        public void setExtractPaint​(boolean b)
        Accessor to set the extract to paint parameter.
        Parameters:
        b - when true extract to paint.
      • setErosionIterations

        public void setErosionIterations​(int iter)
        Accessor to set the number of erosions / dialations.
        Parameters:
        iter - the number of erosions / dialations to do
      • setFilterGaussianStdDev

        public void setFilterGaussianStdDev​(float s)
        Accessor to set the filter's gaussian standard deviation.
        Parameters:
        s - the standard deviation
      • setFilterIterations

        public void setFilterIterations​(int iter)
        Accessor to set the number of filter iterations.
        Parameters:
        iter - the number of filtering passes to make
      • setShowIntermediateImages

        public void setShowIntermediateImages​(boolean show)
        Accessor to set whether intermediate images will be produced.
        Parameters:
        show - whether to keep intermediate images made
      • setUseSeparable

        public void setUseSeparable​(boolean use)
        Accessor to set whether to use the separable convolver for edge detection.
        Parameters:
        use - whether use the separable convolver
      • 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
      • init

        private void init()
        Makes the GUI elements of the dialog.
      • 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.