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,- 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 JDialogExtractSurfaceCubes extends JDialogScriptableBase implements AlgorithmInterface 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:
- AlgorithmExtractSurface,- ModelSurfaceExtractor,- ModelSurfaceDecimator, 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 javax.swing.JCheckBoxblurCheckDOCUMENT ME!private booleanblurFlagDOCUMENT ME!private javax.swing.JTextFieldblurTFDOCUMENT ME!private floatblurValueDOCUMENT ME!private booleandecimateFlagDOCUMENT ME!private javax.swing.JCheckBoxdecimateSurfaceCBDOCUMENT ME!private booleandisposeImageFlag indicates if this object should dispose the input image.private AlgorithmExtractSurfaceCubesextractSurAlgoDOCUMENT ME!private javax.swing.JButtonfileButtonDOCUMENT ME!private java.lang.StringfileNameDOCUMENT ME!private javax.swing.JTextFieldfileTFDOCUMENT ME!private javax.swing.JComboBoxfileTypeListsurface file format list.private java.lang.String[]fileTypessurface file formats.private ModelImageimageDOCUMENT ME!private javax.swing.JRadioButtonintensityLevelRBDOCUMENT ME!private javax.swing.JTextFieldintensityTFDOCUMENT ME!private intlevelDOCUMENT ME!private javax.swing.JRadioButtonmaskImageRBDOCUMENT ME!private intmodeDOCUMENT ME!private static longserialVersionUIDUse serialVersionUID for interoperability.private booleanuseOCLDOCUMENT ME!private javax.swing.JCheckBoxuseOCLCheckboxprivate ViewUserInterfaceuserInterfaceDOCUMENT ME!private javax.swing.JRadioButtonVOIRegionsRBDOCUMENT ME!- 
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 JDialogExtractSurfaceCubes()Empty constructor needed for dynamic instantiation (during script execution).JDialogExtractSurfaceCubes(javax.swing.JFrame theParentFrame, ModelImage im)Create a dialog to set variables to extract surface.JDialogExtractSurfaceCubes(javax.swing.JFrame theParentFrame, ModelImage im, boolean bDisposeImage)Creates a subset of the extract surface dialog.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.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 voidcallAlgorithm()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.private voidinit()Initializes the GUI by creating the components, placing them in the dialog, and displaying them.private voidinitSubset()Initializes the GUI by creating the components, placing them in the dialog, and displaying them.voiditemStateChanged(java.awt.event.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(java.lang.String name)Accessor that sets the file name.protected voidsetGUIFromParams()Set 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 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.JDialogScriptableBasedoPostAlgorithmActions, getDialogActionString, 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, 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
 
- 
 
- 
- 
- 
Field Detail- 
serialVersionUIDprivate static final long serialVersionUID Use serialVersionUID for interoperability.- See Also:
- Constant Field Values
 
 - 
blurCheckprivate javax.swing.JCheckBox blurCheck DOCUMENT ME!
 - 
blurFlagprivate boolean blurFlag DOCUMENT ME!
 - 
useOCLCheckboxprivate javax.swing.JCheckBox useOCLCheckbox 
 - 
useOCLprivate boolean useOCL DOCUMENT ME!
 - 
blurTFprivate javax.swing.JTextField blurTF DOCUMENT ME!
 - 
blurValueprivate float blurValue DOCUMENT ME!
 - 
decimateFlagprivate boolean decimateFlag DOCUMENT ME!
 - 
decimateSurfaceCBprivate javax.swing.JCheckBox decimateSurfaceCB DOCUMENT ME!
 - 
extractSurAlgoprivate AlgorithmExtractSurfaceCubes extractSurAlgo DOCUMENT ME!
 - 
fileButtonprivate javax.swing.JButton fileButton DOCUMENT ME!
 - 
fileNameprivate java.lang.String fileName DOCUMENT ME!
 - 
fileTFprivate javax.swing.JTextField fileTF DOCUMENT ME!
 - 
fileTypeListprivate javax.swing.JComboBox fileTypeList surface file format list.
 - 
fileTypesprivate java.lang.String[] fileTypes surface file formats.
 - 
imageprivate ModelImage image DOCUMENT ME!
 - 
intensityLevelRBprivate javax.swing.JRadioButton intensityLevelRB DOCUMENT ME!
 - 
intensityTFprivate javax.swing.JTextField intensityTF DOCUMENT ME!
 - 
levelprivate int level DOCUMENT ME!
 - 
maskImageRBprivate javax.swing.JRadioButton maskImageRB DOCUMENT ME!
 - 
modeprivate int mode DOCUMENT ME!
 - 
userInterfaceprivate ViewUserInterface userInterface DOCUMENT ME!
 - 
VOIRegionsRBprivate javax.swing.JRadioButton VOIRegionsRB DOCUMENT ME!
 - 
disposeImageprivate boolean disposeImage Flag indicates if this object should dispose the input image.
 
- 
 - 
Constructor Detail- 
JDialogExtractSurfaceCubespublic JDialogExtractSurfaceCubes() Empty constructor needed for dynamic instantiation (during script execution).
 - 
JDialogExtractSurfaceCubespublic JDialogExtractSurfaceCubes(javax.swing.JFrame theParentFrame, ModelImage im)Create a dialog to set variables to extract surface.- Parameters:
- theParentFrame- Parent frame.
- im- Source image.
 
 - 
JDialogExtractSurfaceCubespublic JDialogExtractSurfaceCubes(javax.swing.JFrame theParentFrame, ModelImage im, boolean bDisposeImage)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 Detail- 
actionPerformedpublic void actionPerformed(java.awt.event.ActionEvent event) Closes dialog box when the OK button is pressed and calls the algorithm.- 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 be display the result image and/or clean up.- Specified by:
- algorithmPerformedin interface- AlgorithmInterface
- Parameters:
- algorithm- algorithm that caused the event.
 
 - 
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.
 
 - 
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
 
 - 
itemStateChangedpublic void itemStateChanged(java.awt.event.ItemEvent event) Sets text field enabled or disabled depending on source.- Specified by:
- itemStateChangedin interface- java.awt.event.ItemListener
- Overrides:
- itemStateChangedin class- JDialogBase
- Parameters:
- event- Event that triggered this method.
 
 - 
setBlurFlagpublic 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
 
 - 
setBlurValuepublic void setBlurValue(float sigma) Accessor that sets the blurring amount.- Parameters:
- sigma- the amount of blurring (std. Dev. [0.5 - 5.0]
 
 - 
setDecimationFlagpublic void setDecimationFlag(boolean flag) Accessor that sets the decimation flag.- Parameters:
- flag- true indicates that the surface triangle mesh should be decimated
 
 - 
setFileNamepublic void setFileName(java.lang.String name) 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.
 
 - 
setImagepublic void setImage(ModelImage im) Accessor that sets the image where the surface is to be extracted.- Parameters:
- im- the image (3D image)
 
 - 
setLevelpublic 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
 
 - 
setModepublic void setMode(int mode) Accessor that sets the mode (VOI_MODE, MASK_MODE, or LEVEL_MODE).- Parameters:
- mode- Mode to set to.
 
 - 
setUseOCLpublic 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.
 
 - 
attachSurfaceprivate void attachSurface(ModelImage img) Attach the generated surface to an image.- Parameters:
- img- the image to attach the surface to
 
 - 
callAlgorithmprotected 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 class- JDialogScriptableBase
 
 - 
initprivate void init() Initializes the GUI by creating the components, placing them in the dialog, and displaying them.
 - 
initSubsetprivate void initSubset() Initializes the GUI by creating the components, placing them in the dialog, and displaying them.
 - 
setVariablesprivate boolean setVariables() Use the GUI results to set up the variables needed to run the algorithm.- Returns:
- trueif parameters set successfully,- falseotherwise.
 
 
- 
 
-