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 int
closeIterations
Number of closing operations to perform.private static int
closeKernelPixels
The nuber of pixels to include in the initial closing kernel diameter.private float
closeKernelSize
Size of the kernel used in the closing operations.private javax.swing.JTextField
closeKernelSizeTF
Text field used to enter the number of closings to perform.private float
edgeKernelSize
Edge detection kernel size (.6 in Shattuck paper).private javax.swing.JTextField
edgeKernelSizeTF
Text field used to enter the edge detection kernel size.private boolean
erosion25D
Whether to process the slices of the 3D image separately while performing the erosion / dilation.private javax.swing.JCheckBox
erosion25DCB
Check box for indicating whether erosion / dilation should process slices independently.private int
erosionIterations
Number of erosion / dilation operations to perform (2 in Shattuck paper).private javax.swing.JTextField
erosionIterationsTF
Text field used to enter the number of erosions / dilations.private AlgorithmBrainSurfaceExtractor
extractBrainAlgo
Reference to the algorithm we will be running.private boolean
extractPaint
Whether to extract the brain to paint instead of removing image data.private javax.swing.JCheckBox
extractPaintCheckBox
Checkbox to extract the brain to paint instead of removing image data.private boolean
fillHoles
Whether to fill in all internal holes in the extracted brain.private javax.swing.JCheckBox
fillHolesCB
Checkbox for indicating whether to close all of the interior holes in the extracted brain.private float
filterGaussianStdDev
Standard deviation of the filter's gaussian kernel.private javax.swing.JTextField
filterGaussianStdDevTF
Text field used to enter the standard deviation of the filter's gaussian kernel.private int
filterIterations
Number of filter iterations.private javax.swing.JTextField
filterIterationsTF
Text field used to enter the number of filter iterations.private ModelImage
image
The source image.private ModelImage
imageCopy
A copy of the source image to run the algorithm on.private java.lang.String
imgName
The original image name.private ModelImage
resultImage
The result image.private static long
serialVersionUID
Use serialVersionUID for interoperability.private boolean
showIntermediateImages
Whether to show images from intermediate steps of the BSE algorithm.private javax.swing.JCheckBox
showIntermediateImagesCB
Checkbox to show images which can help in paramater tweaking.private ViewUserInterface
userInterface
Reference to the main user interface.private boolean
useSeparable
Whether to use a separable convolver during edge detection.private javax.swing.JCheckBox
useSeparableCB
Checkbox 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 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 insetGUIFromParams()
).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 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:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in 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:
algorithmPerformed
in interfaceAlgorithmInterface
- Parameters:
algorithm
- Algorithm that caused the event.
-
callAlgorithm
public void callAlgorithm()
Calls the algorithm.- Specified by:
callAlgorithm
in 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:
doPostAlgorithmActions
in classJDialogScriptableBase
-
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 classJDialogScriptableBase
-
storeParamsFromGUI
protected void storeParamsFromGUI() throws ParserException
Record the parameters just used to run this algorithm in a script.- Specified by:
storeParamsFromGUI
in 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:
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 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:
createInputParameters
in 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:
createOutputParameters
in 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:
getOutputImageName
in 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:
isActionComplete
in interfaceActionDiscovery
- Returns:
- True, if the action is complete. False, if the action failed or is still running.
-
-