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,ActionListener,FocusListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
Dialog to enter points for creating an ACPC image.
- Author:
- William Gandler, Pierre-Louis Bazin
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKActionNested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialogNested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityTypeNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ButtonGroupprivate WildMagic.LibFoundation.Mathematics.Vector3fprivate JRadioButtonprivate JButtonprivate JButtonprivate JButtonprivate JComboBoxprivate JComboBoxprivate JComboBoxprivate WildMagic.LibFoundation.Mathematics.Vector3fprivate JRadioButtonprivate final ViewJFrameTriImageprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate final ModelImageprivate JRadioButtonprivate WildMagic.LibFoundation.Mathematics.Vector3fprivate final intprivate int[]private JRadioButtonprivate WildMagic.LibFoundation.Mathematics.Vector3fprivate JButtonprivate JButtonprivate JRadioButtonprivate WildMagic.LibFoundation.Mathematics.Vector3fprivate JTextFieldprivate final TalairachTransformInfoprivate booleanFlag 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 floatFields 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, voiManagerFields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPEFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionJDialogACPC(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
Modifier and TypeMethodDescriptionvoidactionPerformed(ActionEvent event) If user clicks "Set", sets point here and in component image.protected booleanConverts 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.Get the dialog main panel.private booleanprivate 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 booleanGets 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.voidadd 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 interpolationMethods 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, windowOpenedMethods 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, updateMethods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBackMethods 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, toFrontMethods 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, validateTreeMethods 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 Details
-
comboBoxOrientX
-
comboBoxOrientY
-
comboBoxOrientZ
-
ACPCGroup
-
applyACPCButton
-
cancelACPCButton
-
setACPCButton
-
clearACPCButton
-
setOrientationButton
-
superiorEdge
-
posteriorMargin
-
inferiorEdge
-
firstPt
-
anotherPt
-
frame
-
image
-
transform
-
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
-
useIncorrectAcpcXDim
private boolean useIncorrectAcpcXDimFlag 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 Details
-
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 Details
-
init
private void init()Initializes GUI components and displays dialog. -
getMainPanel
Get the dialog main panel.- Returns:
- the main panel of the dialog
-
actionPerformed
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 interfaceActionListener- 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
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.progressBar- Progress bar.oXlow- Out X low.oYlow- Out Y low.oZlow- Out Z low.oXhigh- Out X high.oYhigh- Out Y high.oZhigh- Out Z high.
-
getACPCImage
-