Package gov.nih.mipav.view.dialogs
Class JDialogExtractSurfaceCubes
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.JDialogExtractSurfaceCubes
- All Implemented Interfaces:
AlgorithmInterface,ScriptableActionInterface,DialogDefaultsInterface,ActionListener,FocusListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
Extracts a surface using Cube Extraction. Triangle decimation can be invoked to reduce triangle count. The decimation
algorithm produces a continious level of detail (clod) structure that can be used to optimize the the visualization
of the surface. The input to this algorithm is typically a mask image where 0 = background and 100 = object (i.e.
interior to a VOI). The mask image is then blurred slightly and the level (50) is extracted. A greyscale image may
also be input and a surface is extracted given a level. The steps are:
- Build mask image of VOI (i.e. all point interior to VOI are set to 100. All points exterior are = 0.
- Blur mask image if not greyscale
- Extract level surface at 50 or user defined level
- Save surface ( ".sur")
- If decimate then decimate surface and save (".sur")
- Version:
- 0.1 June, 2001
- Author:
- Matthew J. McAuliffe, Ph.D., David H. Eberly, Ph.D. wrote all the extraction and decimation code found in the SurfaceExtration, SurfaceDecimation and associated classes.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKActionNested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialogNested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityTypeNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate JCheckBoxDOCUMENT ME!private booleanDOCUMENT ME!private JTextFieldDOCUMENT ME!private floatDOCUMENT ME!private booleanDOCUMENT ME!private JCheckBoxDOCUMENT ME!private booleanFlag indicates if this object should dispose the input image.private AlgorithmExtractSurfaceCubesDOCUMENT ME!private JButtonDOCUMENT ME!private StringDOCUMENT ME!private JTextFieldDOCUMENT ME!private JComboBoxsurface file format list.private String[]surface file formats.private ModelImageDOCUMENT ME!private JRadioButtonDOCUMENT ME!private JTextFieldDOCUMENT ME!private intDOCUMENT ME!private JRadioButtonDOCUMENT ME!private intDOCUMENT ME!private static final longUse serialVersionUID for interoperability.private booleanDOCUMENT ME!private JCheckBoxprivate ViewUserInterfaceDOCUMENT ME!private JRadioButtonDOCUMENT ME!Fields inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
displayInNewFrame, isComplete, scriptParametersFields 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, voiManagerFields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPEFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionEmpty constructor needed for dynamic instantiation (during script execution).JDialogExtractSurfaceCubes(JFrame theParentFrame, ModelImage im) Create a dialog to set variables to extract surface.JDialogExtractSurfaceCubes(JFrame theParentFrame, ModelImage im, boolean bDisposeImage) Creates a subset of the extract surface dialog. -
Method Summary
Modifier and TypeMethodDescriptionvoidactionPerformed(ActionEvent event) Closes dialog box when the OK button is pressed and calls the algorithm.voidalgorithmPerformed(AlgorithmBase algorithm) This method is required if the AlgorithmPerformed interface is implemented.private voidattachSurface(ModelImage img) Attach the generated surface to an image.protected voidOnce all the necessary variables are set, call the Extract Surface algorithm based on what type of image this is and whether or not there is a separate destination image.private voidinit()Initializes the GUI by creating the components, placing them in the dialog, and displaying them.private voidInitializes the GUI by creating the components, placing them in the dialog, and displaying them.voiditemStateChanged(ItemEvent event) Sets text field enabled or disabled depending on source.voidsetBlurFlag(boolean flag) Accessor that sets the blurring flag (if the surface is generated from a VOI or mask the surface image will need to be blurred by the Extraction algo before the surface mesh is extracted.voidsetBlurValue(float sigma) Accessor that sets the blurring amount.voidsetDecimationFlag(boolean flag) Accessor that sets the decimation flag.voidsetFileName(String name) Accessor that sets the file name.protected voidSet the dialog GUI using the script parameters while running this algorithm as part of a script.voidsetImage(ModelImage im) Accessor that sets the image where the surface is to be extracted.voidsetLevel(int intenLevel) Accessor that sets the intensity level that defines the surface that is to be extracted.voidsetMode(int mode) Accessor that sets the mode (VOI_MODE, MASK_MODE, or LEVEL_MODE).voidsetUseOCL(boolean useOCL) Accessor that sets whether to use OpenCL processing (may still not be set if it is not supported on the system).private booleanUse the GUI results to set up the variables needed to run the algorithm.protected voidRecord the parameters just used to run this algorithm in a script.Methods inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
doPostAlgorithmActions, getDialogActionString, insertScriptLine, isComplete, scriptRun, setCompleteMethods 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, 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, windowOpenedMethods 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, updateMethods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBackMethods 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, toFrontMethods 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, validateTreeMethods 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
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDUse serialVersionUID for interoperability.- See Also:
-
blurCheck
DOCUMENT ME! -
blurFlag
private boolean blurFlagDOCUMENT ME! -
useOCLCheckbox
-
useOCL
private boolean useOCLDOCUMENT ME! -
blurTF
DOCUMENT ME! -
blurValue
private float blurValueDOCUMENT ME! -
decimateFlag
private boolean decimateFlagDOCUMENT ME! -
decimateSurfaceCB
DOCUMENT ME! -
extractSurAlgo
DOCUMENT ME! -
fileButton
DOCUMENT ME! -
fileName
DOCUMENT ME! -
fileTF
DOCUMENT ME! -
fileTypeList
surface file format list. -
fileTypes
surface file formats. -
image
DOCUMENT ME! -
intensityLevelRB
DOCUMENT ME! -
intensityTF
DOCUMENT ME! -
level
private int levelDOCUMENT ME! -
maskImageRB
DOCUMENT ME! -
mode
private int modeDOCUMENT ME! -
userInterface
DOCUMENT ME! -
VOIRegionsRB
DOCUMENT ME! -
disposeImage
private boolean disposeImageFlag indicates if this object should dispose the input image.
-
-
Constructor Details
-
JDialogExtractSurfaceCubes
public JDialogExtractSurfaceCubes()Empty constructor needed for dynamic instantiation (during script execution). -
JDialogExtractSurfaceCubes
Create a dialog to set variables to extract surface.- Parameters:
theParentFrame- Parent frame.im- Source image.
-
JDialogExtractSurfaceCubes
Creates a subset of the extract surface dialog. The surface is extracted from VOIs, so the option is set as default.- Parameters:
theParentFrame-im-bDisposeImage-
-
-
Method Details
-
actionPerformed
Closes dialog box when the OK button is pressed and calls the algorithm.- Specified by:
actionPerformedin interfaceActionListener- Overrides:
actionPerformedin classJDialogBase- Parameters:
event- event that triggers function
-
algorithmPerformed
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 be display the result image and/or clean up.- Specified by:
algorithmPerformedin interfaceAlgorithmInterface- Parameters:
algorithm- algorithm that caused the event.
-
storeParamsFromGUI
Record 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.
-
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
-
itemStateChanged
Sets text field enabled or disabled depending on source.- Specified by:
itemStateChangedin interfaceItemListener- Overrides:
itemStateChangedin classJDialogBase- Parameters:
event- Event that triggered this method.
-
setBlurFlag
public void setBlurFlag(boolean flag) Accessor that sets the blurring flag (if the surface is generated from a VOI or mask the surface image will need to be blurred by the Extraction algo before the surface mesh is extracted. Typically not required in the level surface of grayscale image is needed.- Parameters:
flag- true indicates that the surface image should be blurred
-
setBlurValue
public void setBlurValue(float sigma) Accessor that sets the blurring amount.- Parameters:
sigma- the amount of blurring (std. Dev. [0.5 - 5.0]
-
setDecimationFlag
public void setDecimationFlag(boolean flag) Accessor that sets the decimation flag.- Parameters:
flag- true indicates that the surface triangle mesh should be decimated
-
setFileName
Accessor that sets the file name. Only the file name and should end in ".sur"- Parameters:
name- name of the file where the surface is to be saved.
-
setImage
Accessor that sets the image where the surface is to be extracted.- Parameters:
im- the image (3D image)
-
setLevel
public void setLevel(int intenLevel) Accessor that sets the intensity level that defines the surface that is to be extracted.- Parameters:
intenLevel- defines the level surface
-
setMode
public void setMode(int mode) Accessor that sets the mode (VOI_MODE, MASK_MODE, or LEVEL_MODE).- Parameters:
mode- Mode to set to.
-
setUseOCL
public void setUseOCL(boolean useOCL) Accessor that sets whether to use OpenCL processing (may still not be set if it is not supported on the system).- Parameters:
useOCL- Whether to try to use OpenCL processing.
-
attachSurface
Attach the generated surface to an image.- Parameters:
img- the image to attach the surface to
-
callAlgorithm
protected void callAlgorithm()Once all the necessary variables are set, call the Extract Surface algorithm based on what type of image this is and whether or not there is a separate destination image.- Specified by:
callAlgorithmin classJDialogScriptableBase
-
init
private void init()Initializes the GUI by creating the components, placing them in the dialog, and displaying them. -
initSubset
private void initSubset()Initializes the GUI by creating the components, placing them in the dialog, and displaying them. -
setVariables
private boolean setVariables()Use the GUI results to set up the variables needed to run the algorithm.- Returns:
trueif parameters set successfully,falseotherwise.
-