Class JDialogBrainSurfaceExtractor

All Implemented Interfaces:
AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, ActionDiscovery, ActionListener, FocusListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

public class JDialogBrainSurfaceExtractor extends JDialogScriptableBase implements AlgorithmInterface, ActionDiscovery
This dialog collects parameters for the BSE algorithm and then starts it up.
Version:
1.0 June 3, 2004
Author:
Evan McCreedy
See Also:
  • Field Details

    • serialVersionUID

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

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

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

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

      private 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 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 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 JTextField erosionIterationsTF
      Text field used to enter the number of erosions / dilations.
    • extractBrainAlgo

      private AlgorithmBrainSurfaceExtractor extractBrainAlgo
      Reference to the algorithm we will be running.
    • extractPaint

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

      private 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 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 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 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 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 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 JCheckBox useSeparableCB
      Checkbox to elect to use the separable convolver in the edge detection algorithm.
  • Constructor Details

    • JDialogBrainSurfaceExtractor

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

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

    • actionPerformed

      public void actionPerformed(ActionEvent event)
      Handles events generated by the user interface, and takes appropriate action.
      Specified by:
      actionPerformed in interface 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.
    • callAlgorithm

      public void callAlgorithm()
      Calls the algorithm.
      Specified by:
      callAlgorithm in class JDialogScriptableBase
    • 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
    • storeParamsFromGUI

      protected void storeParamsFromGUI() throws ParserException
      Record the parameters just used to run this algorithm in a script.
      Specified by:
      storeParamsFromGUI in class JDialogScriptableBase
      Throws:
      ParserException - If there is a problem creating/recording the new parameters.
    • 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 String getOutputImageName(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.