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.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKAction
-
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
-
-
Field Summary
Fields 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.JDialogScriptableBase
displayInNewFrame, isComplete, scriptParameters
-
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogBase
applyButton, bar, cancelButton, cancelFlag, closeButton, HELP, helpButton, mainDialogPanel, NEW, OKButton, parentFrame, progressBar, REPLACE, runInSeparateThread, runningScriptFlag, runQuiet, serif12, serif12B, voiManager
-
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description JDialogBrainSurfaceExtractor()Empty constructor needed for dynamic instantiation (used during scripting).JDialogBrainSurfaceExtractor(java.awt.Frame theParentFrame, ModelImage im)Sets the appropriate variables.
-
Method Summary
All 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.JDialogScriptableBase
getDialogActionString, insertScriptLine, isComplete, scriptRun, setComplete
-
Methods inherited from class gov.nih.mipav.view.dialogs.JDialogBase
buildApplyButton, 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.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
-
Methods inherited from interface gov.nih.mipav.view.dialogs.ActionDiscovery
scriptRun
-
-
-
-
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.
-
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 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:
actionPerformedin interfacejava.awt.event.ActionListener- Overrides:
actionPerformedin classJDialogBase- 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:
algorithmPerformedin interfaceAlgorithmInterface- Parameters:
algorithm- Algorithm that caused the event.
-
callAlgorithm
public void callAlgorithm()
Calls the algorithm.- Specified by:
callAlgorithmin classJDialogScriptableBase
-
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:
doPostAlgorithmActionsin classJDialogScriptableBase
-
setGUIFromParams
protected void setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.- Specified by:
setGUIFromParamsin classJDialogScriptableBase
-
storeParamsFromGUI
protected void storeParamsFromGUI() throws ParserExceptionRecord the parameters just used to run this algorithm in a script.- Specified by:
storeParamsFromGUIin classJDialogScriptableBase- 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:
trueif parameters set successfully,falseotherwise.
-
getActionMetadata
public ActionMetadata getActionMetadata()
Return meta-information about this discoverable action for categorization and labeling purposes.- Specified by:
getActionMetadatain interfaceActionDiscovery- 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 insetGUIFromParams()).- Specified by:
createInputParametersin interfaceActionDiscovery- 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:
createOutputParametersin interfaceActionDiscovery- 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:
getOutputImageNamein interfaceActionDiscovery- 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:
isActionCompletein interfaceActionDiscovery- Returns:
- True, if the action is complete. False, if the action failed or is still running.
-
-