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.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 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.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 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 Summary
All 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.JDialogScriptableBase
doPostAlgorithmActions, 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, 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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Use serialVersionUID for interoperability.- See Also:
- Constant Field Values
-
blurCheck
private javax.swing.JCheckBox blurCheck
DOCUMENT ME!
-
blurFlag
private boolean blurFlag
DOCUMENT ME!
-
useOCLCheckbox
private javax.swing.JCheckBox useOCLCheckbox
-
useOCL
private boolean useOCL
DOCUMENT ME!
-
blurTF
private javax.swing.JTextField blurTF
DOCUMENT ME!
-
blurValue
private float blurValue
DOCUMENT ME!
-
decimateFlag
private boolean decimateFlag
DOCUMENT ME!
-
decimateSurfaceCB
private javax.swing.JCheckBox decimateSurfaceCB
DOCUMENT ME!
-
extractSurAlgo
private AlgorithmExtractSurfaceCubes extractSurAlgo
DOCUMENT ME!
-
fileButton
private javax.swing.JButton fileButton
DOCUMENT ME!
-
fileName
private java.lang.String fileName
DOCUMENT ME!
-
fileTF
private javax.swing.JTextField fileTF
DOCUMENT ME!
-
fileTypeList
private javax.swing.JComboBox fileTypeList
surface file format list.
-
fileTypes
private java.lang.String[] fileTypes
surface file formats.
-
image
private ModelImage image
DOCUMENT ME!
-
intensityLevelRB
private javax.swing.JRadioButton intensityLevelRB
DOCUMENT ME!
-
intensityTF
private javax.swing.JTextField intensityTF
DOCUMENT ME!
-
level
private int level
DOCUMENT ME!
-
maskImageRB
private javax.swing.JRadioButton maskImageRB
DOCUMENT ME!
-
mode
private int mode
DOCUMENT ME!
-
userInterface
private ViewUserInterface userInterface
DOCUMENT ME!
-
VOIRegionsRB
private javax.swing.JRadioButton VOIRegionsRB
DOCUMENT ME!
-
disposeImage
private boolean disposeImage
Flag indicates if this object should dispose the input image.
-
-
Constructor Detail
-
JDialogExtractSurfaceCubes
public JDialogExtractSurfaceCubes()
Empty constructor needed for dynamic instantiation (during script execution).
-
JDialogExtractSurfaceCubes
public JDialogExtractSurfaceCubes(javax.swing.JFrame theParentFrame, ModelImage im)Create a dialog to set variables to extract surface.- Parameters:
theParentFrame- Parent frame.im- Source image.
-
JDialogExtractSurfaceCubes
public 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
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
Closes dialog box when the OK button is pressed and calls the algorithm.- 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 be display the result image and/or clean up.- Specified by:
algorithmPerformedin interfaceAlgorithmInterface- Parameters:
algorithm- algorithm that caused the event.
-
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.
-
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
public void itemStateChanged(java.awt.event.ItemEvent event)
Sets text field enabled or disabled depending on source.- Specified by:
itemStateChangedin interfacejava.awt.event.ItemListener- 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
public 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.
-
setImage
public void setImage(ModelImage im)
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
private void attachSurface(ModelImage img)
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.
-
-