Package gov.nih.mipav.view.dialogs
Class JDialogACPC
- 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.JDialogACPC
-
- All Implemented Interfaces:
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 JDialogACPC extends JDialogBase
Dialog to enter points for creating an ACPC image.- Author:
- William Gandler, Pierre-Louis Bazin
- See Also:
TalairachTransformInfo,AlgorithmTalairachTransform,JDialogTalairachTransform,JDialogTLRC, 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.ButtonGroupACPCGroupModelImageACPCImageprivate WildMagic.LibFoundation.Mathematics.Vector3fanotherMidSagPtprivate javax.swing.JRadioButtonanotherPtprivate javax.swing.JButtonapplyACPCButtonprivate javax.swing.JButtoncancelACPCButtonprivate javax.swing.JButtonclearACPCButtonprivate javax.swing.JComboBoxcomboBoxOrientXprivate javax.swing.JComboBoxcomboBoxOrientYprivate javax.swing.JComboBoxcomboBoxOrientZprivate WildMagic.LibFoundation.Mathematics.Vector3ffirstMidSagPtprivate javax.swing.JRadioButtonfirstPtprivate ViewJFrameTriImageframeprivate booleanhaveAnotherPtprivate booleanhaveFirstPtprivate booleanhaveInferiorEdgeprivate booleanhavePosteriorMarginprivate booleanhaveSuperiorEdgeprivate ModelImageimageprivate javax.swing.JRadioButtoninferiorEdgeprivate WildMagic.LibFoundation.Mathematics.Vector3finferiorEdgePtprivate intinterpolationprivate int[]orientprivate javax.swing.JRadioButtonposteriorMarginprivate WildMagic.LibFoundation.Mathematics.Vector3fposteriorMarginPtprivate javax.swing.JButtonsetACPCButtonprivate javax.swing.JButtonsetOrientationButtonprivate javax.swing.JRadioButtonsuperiorEdgeprivate WildMagic.LibFoundation.Mathematics.Vector3fsuperiorEdgePtprivate javax.swing.JTextFieldtextVoxelLengthprivate TalairachTransformInfotransformprivate booleanuseIncorrectAcpcXDimFlag used to force acpc x dim to old (incorrect) value of 192 instead of fixed value calculation (which results in x dim of 191).private floatvoxelLength-
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 JDialogACPC(ViewJFrameTriImage theParentFrame, ModelImage im, ModelImage acpc, TalairachTransformInfo trans, int interp)This method creates a dialog for selecting markers used for generating an AC-PC aligned view image from an original image
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.ActionEvent event)If user clicks "Set", sets point here and in component image.protected booleanconvertToACPC()Converts image to AC-PC image.private WildMagic.LibFoundation.Mathematics.Vector3fcrossProduct(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)Finds crossproduct of two vectors.private floatdist(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2, float[] resol)Finds the distance between two points based on resolution.private floatdotProduct(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)Finds dotproduct of two vectors.ModelImagegetACPCImage()javax.swing.JPanelgetMainPanel()Get the dialog main panel.private booleangetOrient()private voidinit()Initializes GUI components and displays dialog.private WildMagic.LibFoundation.Mathematics.Vector3fmakemmVector3f(WildMagic.LibFoundation.Mathematics.Vector3f pt, float[] resol)Makes a mm (physical space) point from a pixel space point.private WildMagic.LibFoundation.Mathematics.Vector3fmakeVoxelCoord3Df(WildMagic.LibFoundation.Mathematics.Vector3f pt, float[] resol)Makes a pixel space point from a physical space point.private WildMagic.LibFoundation.Mathematics.Vector3fnorm(WildMagic.LibFoundation.Mathematics.Vector3f pt)Finds the normal to the vector.private WildMagic.LibFoundation.Mathematics.Vector3fsclAdd(float fa, WildMagic.LibFoundation.Mathematics.Vector3f a, float fb, WildMagic.LibFoundation.Mathematics.Vector3f b)Scale and add two vectors.private voidsetAnotherPt(WildMagic.LibFoundation.Mathematics.Vector3f pt)Sets another label based on the point.private voidsetFirstPt(WildMagic.LibFoundation.Mathematics.Vector3f pt)Sets first label based on the point.private voidsetInferiorEdge(WildMagic.LibFoundation.Mathematics.Vector3f pt)Sets inferior label based on the point.private booleansetOrient()Gets the orientation from the combo boxes and checks if it's consistent.private voidsetPosteriorMargin(WildMagic.LibFoundation.Mathematics.Vector3f pt)Sets posterior label based on the point.private voidsetSuperiorEdge(WildMagic.LibFoundation.Mathematics.Vector3f pt)Sets superior label based on the point.voidsetTalairachHeader(ModelImage img)add the Talairach Transform to the image headerprivate WildMagic.LibFoundation.Mathematics.Vector3fsub(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)Subtracts one vector from another and returns result. result = pt1 - pt2.private WildMagic.LibFoundation.Mathematics.Vector3ftoOriginal(WildMagic.LibFoundation.Mathematics.Vector3f in)to convert frame coordinates into the original image onesprivate voidtransformACPCTrilinear(ModelImage image, float[] imgBuffer, double[][] xfrm, float iXres, float iYres, float iZres, int iXdim, int iYdim, int iZdim, float oXres, float oYres, float oZres, int oXdim, int oYdim, int oZdim, ViewJProgressBar progressBar)Transforms and resamples volume using trilinear interpolation-
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, itemStateChanged, 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
-
comboBoxOrientX
private javax.swing.JComboBox comboBoxOrientX
-
comboBoxOrientY
private javax.swing.JComboBox comboBoxOrientY
-
comboBoxOrientZ
private javax.swing.JComboBox comboBoxOrientZ
-
ACPCGroup
private javax.swing.ButtonGroup ACPCGroup
-
applyACPCButton
private javax.swing.JButton applyACPCButton
-
cancelACPCButton
private javax.swing.JButton cancelACPCButton
-
setACPCButton
private javax.swing.JButton setACPCButton
-
clearACPCButton
private javax.swing.JButton clearACPCButton
-
setOrientationButton
private javax.swing.JButton setOrientationButton
-
superiorEdge
private javax.swing.JRadioButton superiorEdge
-
posteriorMargin
private javax.swing.JRadioButton posteriorMargin
-
inferiorEdge
private javax.swing.JRadioButton inferiorEdge
-
firstPt
private javax.swing.JRadioButton firstPt
-
anotherPt
private javax.swing.JRadioButton anotherPt
-
frame
private final ViewJFrameTriImage frame
-
image
private final ModelImage image
-
transform
private final TalairachTransformInfo transform
-
textVoxelLength
private javax.swing.JTextField textVoxelLength
-
haveSuperiorEdge
private boolean haveSuperiorEdge
-
havePosteriorMargin
private boolean havePosteriorMargin
-
haveInferiorEdge
private boolean haveInferiorEdge
-
haveFirstPt
private boolean haveFirstPt
-
haveAnotherPt
private boolean haveAnotherPt
-
orient
private int[] orient
-
superiorEdgePt
private WildMagic.LibFoundation.Mathematics.Vector3f superiorEdgePt
-
posteriorMarginPt
private WildMagic.LibFoundation.Mathematics.Vector3f posteriorMarginPt
-
inferiorEdgePt
private WildMagic.LibFoundation.Mathematics.Vector3f inferiorEdgePt
-
firstMidSagPt
private WildMagic.LibFoundation.Mathematics.Vector3f firstMidSagPt
-
anotherMidSagPt
private WildMagic.LibFoundation.Mathematics.Vector3f anotherMidSagPt
-
interpolation
private final int interpolation
-
voxelLength
private float voxelLength
-
ACPCImage
public ModelImage ACPCImage
-
useIncorrectAcpcXDim
private boolean useIncorrectAcpcXDim
Flag used to force acpc x dim to old (incorrect) value of 192 instead of fixed value calculation (which results in x dim of 191).
-
-
Constructor Detail
-
JDialogACPC
public JDialogACPC(ViewJFrameTriImage theParentFrame, ModelImage im, ModelImage acpc, TalairachTransformInfo trans, int interp)
This method creates a dialog for selecting markers used for generating an AC-PC aligned view image from an original image- Parameters:
theParentFrame- Pointer to the frame that created this dialog.im- Pointer to image represented in frame.
-
-
Method Detail
-
init
private void init()
Initializes GUI components and displays dialog.
-
getMainPanel
public javax.swing.JPanel getMainPanel()
Get the dialog main panel.- Returns:
- the main panel of the dialog
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
If user clicks "Set", sets point here and in component image. If user clicks "Clear", clears point here and in component image. If user clicks "Apply", creates new Talairach image based on points. If user clicks "Cancel", disposes this dialog.- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener- Overrides:
actionPerformedin classJDialogBase- Parameters:
event- Event that triggered this method.
-
getOrient
private boolean getOrient()
-
setOrient
private boolean setOrient()
Gets the orientation from the combo boxes and checks if it's consistent.- Returns:
trueif orientation is consistent.
-
setSuperiorEdge
private void setSuperiorEdge(WildMagic.LibFoundation.Mathematics.Vector3f pt)
Sets superior label based on the point. Enables "Apply" if all points have been set.- Parameters:
pt- Point that was set.
-
setPosteriorMargin
private void setPosteriorMargin(WildMagic.LibFoundation.Mathematics.Vector3f pt)
Sets posterior label based on the point. Enables "Apply" if all points have been set.- Parameters:
pt- Point that was set.
-
setInferiorEdge
private void setInferiorEdge(WildMagic.LibFoundation.Mathematics.Vector3f pt)
Sets inferior label based on the point. Enables "Apply" if all points have been set.- Parameters:
pt- Point that was set.
-
setFirstPt
private void setFirstPt(WildMagic.LibFoundation.Mathematics.Vector3f pt)
Sets first label based on the point. Enables "Apply" if all points have been set.- Parameters:
pt- Point that was set.
-
setAnotherPt
private void setAnotherPt(WildMagic.LibFoundation.Mathematics.Vector3f pt)
Sets another label based on the point. Enables "Apply" if all points have been set.- Parameters:
pt- Point that was set.
-
convertToACPC
protected boolean convertToACPC()
Converts image to AC-PC image. Returns flag indicating success.- Returns:
trueif successful conversion.
-
setTalairachHeader
public void setTalairachHeader(ModelImage img)
add the Talairach Transform to the image header
-
toOriginal
private WildMagic.LibFoundation.Mathematics.Vector3f toOriginal(WildMagic.LibFoundation.Mathematics.Vector3f in)
to convert frame coordinates into the original image ones
-
dist
private float dist(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2, float[] resol)Finds the distance between two points based on resolution.- Parameters:
pt1- First point.pt2- Second point.resol- Resolutions of each dimension.
-
sub
private WildMagic.LibFoundation.Mathematics.Vector3f sub(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)Subtracts one vector from another and returns result. result = pt1 - pt2.- Parameters:
pt1- Vector to subtract from.pt2- Vector to be subtracted.- Returns:
- pt1 - pt2
-
norm
private WildMagic.LibFoundation.Mathematics.Vector3f norm(WildMagic.LibFoundation.Mathematics.Vector3f pt)
Finds the normal to the vector.- Parameters:
pt- Vector to find normal to.- Returns:
- Normal of pt.
-
crossProduct
private WildMagic.LibFoundation.Mathematics.Vector3f crossProduct(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)Finds crossproduct of two vectors.- Parameters:
pt1- First vector.pt2- Second vector- Returns:
- Cross product of pt1 and pt2.
-
dotProduct
private float dotProduct(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)Finds dotproduct of two vectors.- Parameters:
pt1- First vector.pt2- Second vector- Returns:
- Dot product of pt1 and pt2.
-
sclAdd
private WildMagic.LibFoundation.Mathematics.Vector3f sclAdd(float fa, WildMagic.LibFoundation.Mathematics.Vector3f a, float fb, WildMagic.LibFoundation.Mathematics.Vector3f b)Scale and add two vectors.- Parameters:
fa- Scale for vector a.a- Vector a.fb- Scale for vector b.b- Vector b.
-
makemmVector3f
private WildMagic.LibFoundation.Mathematics.Vector3f makemmVector3f(WildMagic.LibFoundation.Mathematics.Vector3f pt, float[] resol)Makes a mm (physical space) point from a pixel space point.- Parameters:
pt- Point to convert.resol- Resolutions to use when converting.- Returns:
- Same point in mm.
-
makeVoxelCoord3Df
private WildMagic.LibFoundation.Mathematics.Vector3f makeVoxelCoord3Df(WildMagic.LibFoundation.Mathematics.Vector3f pt, float[] resol)Makes a pixel space point from a physical space point.- Parameters:
pt- Point to convert.resol- Resolutions to use when converting.- Returns:
- Same point in pixel space.
-
transformACPCTrilinear
private void transformACPCTrilinear(ModelImage image, float[] imgBuffer, double[][] xfrm, float iXres, float iYres, float iZres, int iXdim, int iYdim, int iZdim, float oXres, float oYres, float oZres, int oXdim, int oYdim, int oZdim, ViewJProgressBar progressBar)
Transforms and resamples volume using trilinear interpolation- Parameters:
image- Image.imgBuffer- Image array.xfrm- Transformation matrix to be applied.iXres- In X resolution.iYres- In Y resolution.iZres- In Z resolution.iXdim- In X dimension.iYdim- In Y dimension.iZdim- In Z dimension.oXres- Out X resolution.oYres- Out Y resolution.oZres- Out Z resolution.oXdim- Out X dimension.oYdim- Out Y dimension.oZdim- Out Z dimension.oXlow- Out X low.oYlow- Out Y low.oZlow- Out Z low.oXhigh- Out X high.oYhigh- Out Y high.oZhigh- Out Z high.progressBar- Progress bar.
-
getACPCImage
public ModelImage getACPCImage()
-
-