Class JDialogRegistrationTPSpline
- 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.JDialogRegistrationTPSpline
-
- 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 JDialogRegistrationTPSpline extends JDialogScriptableBase implements AlgorithmInterface
Dialog to get user input Selected image is match image, the image that gets transformed until it is registered to the base image. Thin plate spline algorithm is used for matching.The mouse is used to put a set of point VOIs on the base image. Then, the mouse is used to put the same number of point VOIs at the corresponding positions on the match image. For 2D images 3 or more points are required and the algorithm may fail if the points all nearly fall on the same line. For 3D images 4 or more points are required and the algorithm may fail if the points nearly all fall on the same plane. The base image is selected from a combo box containing the names of images other than the selected match image.
The dimensions or image type of the match image need not be the same as the dimensions or image type of the base image. The registered resultImage will have the same image type as the match image and the same extents as the base image.
The spline matching points sets are used to obtain spline interpolation coefficients. These spline interpolation coefficents are used to transform all the xorg,yorg grid positions in base image space to xnew, ynew grid positions in match space. Then, at every xorg,yorg grid position in the base space, the program checks to see if the corresponding xnew,ynew grid position in the match space is within the image bounds of the match image. If xnew, ynew is within the match space bounds, then the data value at the xnew,ynew grid position in the match space is assigned to be the registered value at the xorg,yorg position in the base space. Since xnew, ynew is a floating point number and the data in the match image is only contained at integer grid points, interpolation must be used. For a 2D image the data value at xnew,ynew in the match space is obtained by bilinear interpolation from its 4 nearest neighbors. For a 3D image the data value at xnew,ynew in the match space is obtained by trilinear interpolation from its 8 nearest neighbors. If the xnew, ynew is outside the match space bounds, then a zero is assigned to the xorg, yorg position in the base space.
This software does not yet provide a general coplanar solution for 3D images. However, special handling does exist for the case where the z values of the corresponding point landmarks are identical.
- See Also:
- 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 ModelImage
baseImage
DOCUMENT ME!private javax.swing.JComboBox
comboBoxImage
DOCUMENT ME!private boolean
coplanar
DOCUMENT ME!private int
DIM
DOCUMENT ME!private ModelImage
matchImage
DOCUMENT ME!private javax.swing.JComboBox
matrixComboBox
private java.lang.String
matrixDirectory
private javax.swing.JLabel
matrixLabel
private ModelImage
resultImage
DOCUMENT ME!private static long
serialVersionUID
Use serialVersionUID for interoperability.private AlgorithmTPSpline
spline
DOCUMENT ME!private javax.swing.JRadioButton
threeDButton
private java.lang.String[]
titles
DOCUMENT ME!private javax.swing.JRadioButton
twoDButton
private ViewUserInterface
UI
DOCUMENT ME!private boolean
use3D
private javax.swing.JLabel
userDirectoryLabel
private javax.swing.JTextField
userDirectoryText
private double[]
xSource
DOCUMENT ME!private double[]
xTar
DOCUMENT ME!private double[]
ySource
DOCUMENT ME!private double[]
yTar
DOCUMENT ME!private double[]
zSource
DOCUMENT ME!private double[]
zTar
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 JDialogRegistrationTPSpline()
Empty constructor for scripts.JDialogRegistrationTPSpline(java.awt.Frame theParentFrame, ModelImage im)
Creates new 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.protected javax.swing.JPanel
buildImagePanel()
private javax.swing.JComboBox
buildImgComboBox(ModelImage image)
Builds a list of images.protected javax.swing.JPanel
buildOutputPanel()
protected void
callAlgorithm()
Runs the algorithm.protected void
doPostAlgorithmActions()
Store the result image in the script runner's image table now that the action execution is finished.ModelImage
getResultImage()
Gets the result image.private void
init()
Initializes GUI components and displays dialog.void
itemStateChanged(java.awt.event.ItemEvent event)
Changes the interpolation box to enabled or disabled depending on if the transform box is checked or not.protected void
setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.void
setMatrixDirectory(java.lang.String matrixDirectory)
Accessor to set directory in which the matrix file is storedvoid
setUse3D(boolean use3D)
private boolean
setVariables()
DOCUMENT ME!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, 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
-
baseImage
private ModelImage baseImage
DOCUMENT ME!
-
comboBoxImage
private javax.swing.JComboBox comboBoxImage
DOCUMENT ME!
-
coplanar
private boolean coplanar
DOCUMENT ME!
-
DIM
private int DIM
DOCUMENT ME!
-
matchImage
private ModelImage matchImage
DOCUMENT ME!
-
resultImage
private ModelImage resultImage
DOCUMENT ME!
-
spline
private AlgorithmTPSpline spline
DOCUMENT ME!
-
titles
private java.lang.String[] titles
DOCUMENT ME!
-
UI
private ViewUserInterface UI
DOCUMENT ME!
-
xSource
private double[] xSource
DOCUMENT ME!
-
xTar
private double[] xTar
DOCUMENT ME!
-
ySource
private double[] ySource
DOCUMENT ME!
-
yTar
private double[] yTar
DOCUMENT ME!
-
zSource
private double[] zSource
DOCUMENT ME!
-
zTar
private double[] zTar
DOCUMENT ME!
-
matrixLabel
private javax.swing.JLabel matrixLabel
-
matrixComboBox
private javax.swing.JComboBox matrixComboBox
-
matrixDirectory
private java.lang.String matrixDirectory
-
userDirectoryLabel
private javax.swing.JLabel userDirectoryLabel
-
userDirectoryText
private javax.swing.JTextField userDirectoryText
-
twoDButton
private javax.swing.JRadioButton twoDButton
-
threeDButton
private javax.swing.JRadioButton threeDButton
-
use3D
private boolean use3D
-
-
Constructor Detail
-
JDialogRegistrationTPSpline
public JDialogRegistrationTPSpline()
Empty constructor for scripts.
-
JDialogRegistrationTPSpline
public JDialogRegistrationTPSpline(java.awt.Frame theParentFrame, ModelImage im)
Creates new dialog.- Parameters:
theParentFrame
- Parent frameim
- Source image
-
-
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.
-
getResultImage
public ModelImage getResultImage()
Gets the result image.- Returns:
- ModelImage result image
-
itemStateChanged
public void itemStateChanged(java.awt.event.ItemEvent event)
Changes the interpolation box to enabled or disabled depending on if the transform box is checked or not.- Specified by:
itemStateChanged
in interfacejava.awt.event.ItemListener
- Overrides:
itemStateChanged
in classJDialogBase
- Parameters:
event
- Event that triggered this function.
-
callAlgorithm
protected void callAlgorithm()
Runs the algorithm.- Specified by:
callAlgorithm
in classJDialogScriptableBase
-
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
-
setMatrixDirectory
public void setMatrixDirectory(java.lang.String matrixDirectory)
Accessor to set directory in which the matrix file is stored- Parameters:
matrixDirectory
-
-
setUse3D
public void setUse3D(boolean use3D)
- Parameters:
use3D
-
-
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()
Initializes GUI components and displays dialog.
-
buildImagePanel
protected javax.swing.JPanel buildImagePanel()
-
buildOutputPanel
protected javax.swing.JPanel buildOutputPanel()
-
buildImgComboBox
private javax.swing.JComboBox buildImgComboBox(ModelImage image)
Builds a list of images. Returns combobox.- Parameters:
image
- DOCUMENT ME!- Returns:
- Newly created combo box.
-
setVariables
private boolean setVariables()
DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
-