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.JCheckBox
blurCheck
DOCUMENT ME!private boolean
blurFlag
DOCUMENT ME!private javax.swing.JTextField
blurTF
DOCUMENT ME!private float
blurValue
DOCUMENT ME!private boolean
decimateFlag
DOCUMENT ME!private javax.swing.JCheckBox
decimateSurfaceCB
DOCUMENT ME!private boolean
disposeImage
Flag indicates if this object should dispose the input image.private AlgorithmExtractSurfaceCubes
extractSurAlgo
DOCUMENT ME!private javax.swing.JButton
fileButton
DOCUMENT ME!private java.lang.String
fileName
DOCUMENT ME!private javax.swing.JTextField
fileTF
DOCUMENT ME!private javax.swing.JComboBox
fileTypeList
surface file format list.private java.lang.String[]
fileTypes
surface file formats.private ModelImage
image
DOCUMENT ME!private javax.swing.JRadioButton
intensityLevelRB
DOCUMENT ME!private javax.swing.JTextField
intensityTF
DOCUMENT ME!private int
level
DOCUMENT ME!private javax.swing.JRadioButton
maskImageRB
DOCUMENT ME!private int
mode
DOCUMENT ME!private static long
serialVersionUID
Use serialVersionUID for interoperability.private boolean
useOCL
DOCUMENT ME!private javax.swing.JCheckBox
useOCLCheckbox
private ViewUserInterface
userInterface
DOCUMENT ME!private javax.swing.JRadioButton
VOIRegionsRB
DOCUMENT 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 void
actionPerformed(java.awt.event.ActionEvent event)
Closes dialog box when the OK button is pressed and calls the algorithm.void
algorithmPerformed(AlgorithmBase algorithm)
This method is required if the AlgorithmPerformed interface is implemented.private void
attachSurface(ModelImage img)
Attach the generated surface to an image.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.private void
init()
Initializes the GUI by creating the components, placing them in the dialog, and displaying them.private void
initSubset()
Initializes the GUI by creating the components, placing them in the dialog, and displaying them.void
itemStateChanged(java.awt.event.ItemEvent event)
Sets text field enabled or disabled depending on source.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.void
setBlurValue(float sigma)
Accessor that sets the blurring amount.void
setDecimationFlag(boolean flag)
Accessor that sets the decimation flag.void
setFileName(java.lang.String name)
Accessor that sets the file name.protected void
setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.void
setImage(ModelImage im)
Accessor that sets the image where the surface is to be extracted.void
setLevel(int intenLevel)
Accessor that sets the intensity level that defines the surface that is to be extracted.void
setMode(int mode)
Accessor that sets the mode (VOI_MODE, MASK_MODE, or LEVEL_MODE).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).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
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:
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 be display the result image and/or clean up.- Specified by:
algorithmPerformed
in interfaceAlgorithmInterface
- Parameters:
algorithm
- algorithm that caused the event.
-
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.
-
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
-
itemStateChanged
public void itemStateChanged(java.awt.event.ItemEvent event)
Sets text field enabled or disabled depending on source.- Specified by:
itemStateChanged
in interfacejava.awt.event.ItemListener
- Overrides:
itemStateChanged
in 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:
callAlgorithm
in 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:
true
if parameters set successfully,false
otherwise.
-
-