Package gov.nih.mipav.view.dialogs
Class JDialogBrainSurfaceExtractor
- java.lang.Object
- 
- java.awt.Component
- 
- java.awt.Container
- 
- java.awt.Window
- 
- java.awt.Dialog
- 
- javax.swing.JDialog
- 
- gov.nih.mipav.view.dialogs.JDialogBase
- 
- gov.nih.mipav.view.dialogs.JDialogScriptableBase
- 
- gov.nih.mipav.view.dialogs.JDialogBrainSurfaceExtractor
 
 
 
 
 
 
 
 
- 
- 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 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:
- AlgorithmBrainSurfaceExtractor, Serialized Form
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBaseJDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKAction
 - 
Nested classes/interfaces inherited from class javax.swing.JDialogjavax.swing.JDialog.AccessibleJDialog
 - 
Nested classes/interfaces inherited from class java.awt.Dialogjava.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 - 
Nested classes/interfaces inherited from class java.awt.Windowjava.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
 
- 
 - 
Field SummaryFields Modifier and Type Field Description private static intcloseIterationsNumber of closing operations to perform.private static intcloseKernelPixelsThe nuber of pixels to include in the initial closing kernel diameter.private floatcloseKernelSizeSize of the kernel used in the closing operations.private javax.swing.JTextFieldcloseKernelSizeTFText field used to enter the number of closings to perform.private floatedgeKernelSizeEdge detection kernel size (.6 in Shattuck paper).private javax.swing.JTextFieldedgeKernelSizeTFText field used to enter the edge detection kernel size.private booleanerosion25DWhether to process the slices of the 3D image separately while performing the erosion / dilation.private javax.swing.JCheckBoxerosion25DCBCheck box for indicating whether erosion / dilation should process slices independently.private interosionIterationsNumber of erosion / dilation operations to perform (2 in Shattuck paper).private javax.swing.JTextFielderosionIterationsTFText field used to enter the number of erosions / dilations.private AlgorithmBrainSurfaceExtractorextractBrainAlgoReference to the algorithm we will be running.private booleanextractPaintWhether to extract the brain to paint instead of removing image data.private javax.swing.JCheckBoxextractPaintCheckBoxCheckbox to extract the brain to paint instead of removing image data.private booleanfillHolesWhether to fill in all internal holes in the extracted brain.private javax.swing.JCheckBoxfillHolesCBCheckbox for indicating whether to close all of the interior holes in the extracted brain.private floatfilterGaussianStdDevStandard deviation of the filter's gaussian kernel.private javax.swing.JTextFieldfilterGaussianStdDevTFText field used to enter the standard deviation of the filter's gaussian kernel.private intfilterIterationsNumber of filter iterations.private javax.swing.JTextFieldfilterIterationsTFText field used to enter the number of filter iterations.private ModelImageimageThe source image.private ModelImageimageCopyA copy of the source image to run the algorithm on.private java.lang.StringimgNameThe original image name.private ModelImageresultImageThe result image.private static longserialVersionUIDUse serialVersionUID for interoperability.private booleanshowIntermediateImagesWhether to show images from intermediate steps of the BSE algorithm.private javax.swing.JCheckBoxshowIntermediateImagesCBCheckbox to show images which can help in paramater tweaking.private ViewUserInterfaceuserInterfaceReference to the main user interface.private booleanuseSeparableWhether to use a separable convolver during edge detection.private javax.swing.JCheckBoxuseSeparableCBCheckbox to elect to use the separable convolver in the edge detection algorithm.- 
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBasedisplayInNewFrame, isComplete, scriptParameters
 - 
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogBaseapplyButton, bar, cancelButton, cancelFlag, closeButton, HELP, helpButton, mainDialogPanel, NEW, OKButton, parentFrame, progressBar, REPLACE, runInSeparateThread, runningScriptFlag, runQuiet, serif12, serif12B, voiManager
 - 
Fields inherited from class javax.swing.JDialogaccessibleContext, rootPane, rootPaneCheckingEnabled
 - 
Fields inherited from class java.awt.ComponentBOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
- 
 - 
Constructor SummaryConstructors Constructor Description JDialogBrainSurfaceExtractor()Empty constructor needed for dynamic instantiation (used during scripting).JDialogBrainSurfaceExtractor(java.awt.Frame theParentFrame, ModelImage im)Sets the appropriate variables.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.ActionEvent event)Handles events generated by the user interface, and takes appropriate action.voidalgorithmPerformed(AlgorithmBase algorithm)This method is required if the AlgorithmPerformed interface is implemented.voidcallAlgorithm()Calls the algorithm.ParameterTablecreateInputParameters()Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used insetGUIFromParams()).ParameterTablecreateOutputParameters()Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).protected voiddoPostAlgorithmActions()Store the result image in the script runner's image table now that the action execution is finished.ActionMetadatagetActionMetadata()Return meta-information about this discoverable action for categorization and labeling purposes.java.lang.StringgetOutputImageName(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 voidinit()Makes the GUI elements of the dialog.booleanisActionComplete()Returns whether the action has successfully completed its execution.voidsetEdgeKernelSize(float s)Accessor to set the edge detection kernel size.voidsetErosionIterations(int iter)Accessor to set the number of erosions / dialations.voidsetExtractPaint(boolean b)Accessor to set the extract to paint parameter.voidsetFillHoles(boolean b)Accessor to set the fill holes parameter.voidsetFilterGaussianStdDev(float s)Accessor to set the filter's gaussian standard deviation.voidsetFilterIterations(int iter)Accessor to set the number of filter iterations.protected voidsetGUIFromParams()Set the dialog GUI using the script parameters while running this algorithm as part of a script.voidsetShowIntermediateImages(boolean show)Accessor to set whether intermediate images will be produced.voidsetUseSeparable(boolean use)Accessor to set whether to use the separable convolver for edge detection.private booleansetVariables()Use the GUI results to set up the variables needed to run the algorithm.protected voidstoreParamsFromGUI()Record the parameters just used to run this algorithm in a script.- 
Methods inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBasegetDialogActionString, insertScriptLine, isComplete, scriptRun, setComplete
 - 
Methods inherited from class gov.nih.mipav.view.dialogs.JDialogBasebuildApplyButton, buildButtons, buildCancelButton, buildCancelButton, buildCloseButton, buildHelpButton, buildImageComboBox, buildOKButton, buildOKButton, buildOKCancelButtons, buildTitledBorder, buildTitledBorder, createLabel, createProgressBar, createProgressBar, createTextField, focusGained, focusLost, getDialogName, isCancelled, isQuietRunning, isRunInSeparateThread, isScriptRunning, itemStateChanged, loadDefaults, loadDefaults, makeImageName, makeString, openNewFrame, saveDefaults, saveDefaults, setLeftHandSystem, setQuietRunning, setScriptRunning, setSeparateThread, setVisible, setVisible, setVisibleMenuBar, setVisibleStandard, setVOIManager, setWCSystem, testParameter, testParameterMin, updateFFTFileInfo, updateFileInfo, updateFileInfoOtherModality, updateFileInfoStatic, updateFileInfoStatic, updateFileTypeInfo, updateFileTypeInfo, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 - 
Methods inherited from class javax.swing.JDialogaddImpl, 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.DialogaddNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
 - 
Methods inherited from class java.awt.WindowaddPropertyChangeListener, 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.Containeradd, 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.Componentaction, 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.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface gov.nih.mipav.view.dialogs.ActionDiscoveryscriptRun
 
- 
 
- 
- 
- 
Field Detail- 
serialVersionUIDprivate static final long serialVersionUID Use serialVersionUID for interoperability.- See Also:
- Constant Field Values
 
 - 
closeKernelPixelsprivate static final int closeKernelPixels The nuber of pixels to include in the initial closing kernel diameter.- See Also:
- Constant Field Values
 
 - 
closeIterationsprivate static final int closeIterations Number of closing operations to perform.- See Also:
- Constant Field Values
 
 - 
closeKernelSizeprivate float closeKernelSize Size of the kernel used in the closing operations.
 - 
closeKernelSizeTFprivate javax.swing.JTextField closeKernelSizeTF Text field used to enter the number of closings to perform.
 - 
edgeKernelSizeprivate float edgeKernelSize Edge detection kernel size (.6 in Shattuck paper).
 - 
edgeKernelSizeTFprivate javax.swing.JTextField edgeKernelSizeTF Text field used to enter the edge detection kernel size.
 - 
erosion25Dprivate boolean erosion25D Whether to process the slices of the 3D image separately while performing the erosion / dilation.
 - 
erosion25DCBprivate javax.swing.JCheckBox erosion25DCB Check box for indicating whether erosion / dilation should process slices independently.
 - 
erosionIterationsprivate int erosionIterations Number of erosion / dilation operations to perform (2 in Shattuck paper).
 - 
erosionIterationsTFprivate javax.swing.JTextField erosionIterationsTF Text field used to enter the number of erosions / dilations.
 - 
extractBrainAlgoprivate AlgorithmBrainSurfaceExtractor extractBrainAlgo Reference to the algorithm we will be running.
 - 
extractPaintprivate boolean extractPaint Whether to extract the brain to paint instead of removing image data.
 - 
extractPaintCheckBoxprivate javax.swing.JCheckBox extractPaintCheckBox Checkbox to extract the brain to paint instead of removing image data.
 - 
fillHolesprivate boolean fillHoles Whether to fill in all internal holes in the extracted brain.
 - 
fillHolesCBprivate javax.swing.JCheckBox fillHolesCB Checkbox for indicating whether to close all of the interior holes in the extracted brain.
 - 
filterGaussianStdDevprivate float filterGaussianStdDev Standard deviation of the filter's gaussian kernel.
 - 
filterGaussianStdDevTFprivate javax.swing.JTextField filterGaussianStdDevTF Text field used to enter the standard deviation of the filter's gaussian kernel.
 - 
filterIterationsprivate int filterIterations Number of filter iterations.
 - 
filterIterationsTFprivate javax.swing.JTextField filterIterationsTF Text field used to enter the number of filter iterations.
 - 
imageprivate ModelImage image The source image.
 - 
imageCopyprivate ModelImage imageCopy A copy of the source image to run the algorithm on.
 - 
imgNameprivate java.lang.String imgName The original image name.
 - 
resultImageprivate ModelImage resultImage The result image.
 - 
showIntermediateImagesprivate boolean showIntermediateImages Whether to show images from intermediate steps of the BSE algorithm.
 - 
showIntermediateImagesCBprivate javax.swing.JCheckBox showIntermediateImagesCB Checkbox to show images which can help in paramater tweaking.
 - 
userInterfaceprivate ViewUserInterface userInterface Reference to the main user interface.
 - 
useSeparableprivate boolean useSeparable Whether to use a separable convolver during edge detection.
 - 
useSeparableCBprivate javax.swing.JCheckBox useSeparableCB Checkbox to elect to use the separable convolver in the edge detection algorithm.
 
- 
 - 
Constructor Detail- 
JDialogBrainSurfaceExtractorpublic JDialogBrainSurfaceExtractor() Empty constructor needed for dynamic instantiation (used during scripting).
 - 
JDialogBrainSurfaceExtractorpublic JDialogBrainSurfaceExtractor(java.awt.Frame theParentFrame, ModelImage im)Sets the appropriate variables.- Parameters:
- theParentFrame- Parent frame.
- im- Source image.
 
 
- 
 - 
Method Detail- 
actionPerformedpublic void actionPerformed(java.awt.event.ActionEvent event) Handles events generated by the user interface, and takes appropriate action.- Specified by:
- actionPerformedin interface- java.awt.event.ActionListener
- Overrides:
- actionPerformedin class- JDialogBase
- Parameters:
- event- event that triggers function
 
 - 
algorithmPerformedpublic 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:
- algorithmPerformedin interface- AlgorithmInterface
- Parameters:
- algorithm- Algorithm that caused the event.
 
 - 
callAlgorithmpublic void callAlgorithm() Calls the algorithm.- Specified by:
- callAlgorithmin class- JDialogScriptableBase
 
 - 
setEdgeKernelSizepublic void setEdgeKernelSize(float s) Accessor to set the edge detection kernel size.- Parameters:
- s- the kernel size for edge detection
 
 - 
setFillHolespublic void setFillHoles(boolean b) Accessor to set the fill holes parameter.- Parameters:
- b- when true holes are filled.
 
 - 
setExtractPaintpublic void setExtractPaint(boolean b) Accessor to set the extract to paint parameter.- Parameters:
- b- when true extract to paint.
 
 - 
setErosionIterationspublic void setErosionIterations(int iter) Accessor to set the number of erosions / dialations.- Parameters:
- iter- the number of erosions / dialations to do
 
 - 
setFilterGaussianStdDevpublic void setFilterGaussianStdDev(float s) Accessor to set the filter's gaussian standard deviation.- Parameters:
- s- the standard deviation
 
 - 
setFilterIterationspublic void setFilterIterations(int iter) Accessor to set the number of filter iterations.- Parameters:
- iter- the number of filtering passes to make
 
 - 
setShowIntermediateImagespublic void setShowIntermediateImages(boolean show) Accessor to set whether intermediate images will be produced.- Parameters:
- show- whether to keep intermediate images made
 
 - 
setUseSeparablepublic void setUseSeparable(boolean use) Accessor to set whether to use the separable convolver for edge detection.- Parameters:
- use- whether use the separable convolver
 
 - 
doPostAlgorithmActionsprotected void doPostAlgorithmActions() Store the result image in the script runner's image table now that the action execution is finished.- Overrides:
- doPostAlgorithmActionsin class- JDialogScriptableBase
 
 - 
setGUIFromParamsprotected void setGUIFromParams() Set the dialog GUI using the script parameters while running this algorithm as part of a script.- Specified by:
- setGUIFromParamsin class- JDialogScriptableBase
 
 - 
storeParamsFromGUIprotected void storeParamsFromGUI() throws ParserExceptionRecord the parameters just used to run this algorithm in a script.- Specified by:
- storeParamsFromGUIin class- JDialogScriptableBase
- Throws:
- ParserException- If there is a problem creating/recording the new parameters.
 
 - 
initprivate void init() Makes the GUI elements of the dialog.
 - 
setVariablesprivate boolean setVariables() Use the GUI results to set up the variables needed to run the algorithm.- Returns:
- trueif parameters set successfully,- falseotherwise.
 
 - 
getActionMetadatapublic ActionMetadata getActionMetadata() Return meta-information about this discoverable action for categorization and labeling purposes.- Specified by:
- getActionMetadatain interface- ActionDiscovery
- Returns:
- Metadata for this action.
 
 - 
createInputParameterspublic ParameterTable createInputParameters() Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used insetGUIFromParams()).- Specified by:
- createInputParametersin interface- ActionDiscovery
- Returns:
- A parameter table listing the inputs of this algorithm.
 
 - 
createOutputParameterspublic ParameterTable createOutputParameters() Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).- Specified by:
- createOutputParametersin interface- ActionDiscovery
- Returns:
- A parameter table listing the outputs of this algorithm.
 
 - 
getOutputImageNamepublic 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:
- getOutputImageNamein 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.
 
 - 
isActionCompletepublic boolean isActionComplete() Returns whether the action has successfully completed its execution.- Specified by:
- isActionCompletein interface- ActionDiscovery
- Returns:
- True, if the action is complete. False, if the action failed or is still running.
 
 
- 
 
-