Class ViewJFrameRegistration

  • All Implemented Interfaces:
    VOIManagerInterfaceListener, ViewImageUpdateInterface, java.awt.event.ActionListener, java.awt.event.ComponentListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class ViewJFrameRegistration
    extends ViewJFrameBase
    implements java.awt.event.ItemListener, javax.swing.event.ChangeListener, java.awt.event.FocusListener, java.awt.event.MouseMotionListener, java.awt.event.MouseListener, VOIManagerInterfaceListener

    ViewJFrameRegistration is called in ViewJFrameImage. ViewJFrameRegistration calls ViewJComponentRegistration.

    In ordinary image dragging you simply drag one image. Here the adjustable slice is moved while the reference slice stays fixed, and a bilinear transformation followed by an alpha blending of the 2 images occurs. Because g.drawImage in ViewJComponentBase draws the blended image, the movement cannot simply be performed by changing the parameters of g.drawImage.

    The adjustable image slice moves are determined by floating point values fed into a transform routine that performs bilinear interpolation.

    The file menu has 1 item, Close registration. A reference slice slider selects the slice which does not move and against which the other slices are adjusted. An adjusted slice slider selects a slice which will be moved into a desired alignment with the reference slice. An alpha blending slider determines the percentages of the image produced by the reference slice(image R) and the adjusted slice(imageA). 24 toolbar buttons are present:

    1.) Display LUT table calls forth a display panel which allows the user to set separate histograms for the reference and adjusted slices.
    2.) Create checkerboard pattern
    3.) Magnify image 2.0X.
    4.) Magnify image 0.5X.
    5.) Window region of imageB
    6.) Apply least squares alignment.
    7.) Apply thin plate spline alignment.
    8.) Reset to return slice to original state and remove all markers
    9.) Commit the slice to the image.
    10.) Set the pixel increment for image translations and movements of the rotation center. Values can range from 0.01 to 2048.0. Movements of the rotation center will only be performed to the nearest integer. The default value is 1.0 pixels.
    11.) Put in translate mode. In this mode the image can either be moved with the up, down, right, and left buttons or moved a distance and direction with mouse dragging. 12.) up button for image translation in translate mode and rotation center and marker movements in POINT_VOI mode.
    13.) down button for image translation in translate mode and rotation center and marker movements in POINT_VOI mode.
    14.) right button for image translation in translate mode and rotation center and marker movements in POINT_VOI mode.
    15.) left button for image translation in translate mode and rotation center and marker movements in POINT_VOI mode.
    16.) Set degree increment for image rotations. Values can range from 0.01 to 360.0 degrees. The default value is 1.0 degrees.
    17.) Put in rotate mode for rotating the image. In this mode the image can be moved either with the cw and ccw buttons or moved an angle around the rotation center point as given by mouse dragging. The initial rotation point is the center, but a new rotation point can be set with a mouse press.
    18.) cw button for rotating an image clockwise in rotate mode.
    19.) ccw button for rotating an image counterclockwise in rotate mode.
    20.) Put in POINT_VOI mode for setting the location of reference slice markers. Red markers are used.
    21.) Put in the POINT_VOI mode for setting the location of adjusted slice markers. Green markers are used. Green markers move with translations and rotations.
    22.) Delete selected reference slice markers.
    23.) Delete selected adjusted slice markers.
    24.) Return to default mode.

    Version:
    1.0
    See Also:
    Serialized Form
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Use serialVersionUID for interoperability.
        See Also:
        Constant Field Values
      • ROTATIONCENTER

        public static final int ROTATIONCENTER
        The 3 types of markers - rotation center, reference slice, and adjusted slice.
        See Also:
        Constant Field Values
      • toggleArray

        public javax.swing.JToggleButton[] toggleArray
        DOCUMENT ME!
      • serif12

        protected java.awt.Font serif12
        DOCUMENT ME!
      • adjMark

        private int adjMark
        DOCUMENT ME!
      • adjMarkButton

        private javax.swing.JToggleButton adjMarkButton
        DOCUMENT ME!
      • adjMarkMinusButton

        private javax.swing.JButton adjMarkMinusButton
        DOCUMENT ME!
      • alphaSlider

        private javax.swing.JSlider alphaSlider
        DOCUMENT ME!
      • bufferFactor

        private int bufferFactor
        DOCUMENT ME!
      • bufferSize

        private int bufferSize
        DOCUMENT ME!
      • buttonArray

        private javax.swing.JButton[] buttonArray
        DOCUMENT ME!
      • ccwButton

        private javax.swing.JButton ccwButton
        DOCUMENT ME!
      • componentY

        private int componentY
        DOCUMENT ME!
      • controlPanel

        private javax.swing.JPanel controlPanel
        DOCUMENT ME!
      • cpGBC

        private java.awt.GridBagConstraints cpGBC
        DOCUMENT ME!
      • cpGBL

        private java.awt.GridBagLayout cpGBL
        DOCUMENT ME!
      • curAdjMark

        private int curAdjMark
        DOCUMENT ME!
      • curRefMark

        private int curRefMark
        DOCUMENT ME!
      • cwButton

        private javax.swing.JButton cwButton
        DOCUMENT ME!
      • defaultModeButton

        private javax.swing.JToggleButton defaultModeButton
        DOCUMENT ME!
      • degreeIncrement

        private float degreeIncrement
        DOCUMENT ME!
      • degreeIncrementButton

        private javax.swing.JButton degreeIncrementButton
        DOCUMENT ME!
      • doDrag

        private boolean doDrag
        DOCUMENT ME!
      • doneLeastSquares

        private boolean doneLeastSquares
        DOCUMENT ME!
      • doRegionB

        private boolean doRegionB
        DOCUMENT ME!
      • downButton

        private javax.swing.JButton downButton
        DOCUMENT ME!
      • dragButton

        private javax.swing.JToggleButton dragButton
        DOCUMENT ME!
      • etchedBorder

        private javax.swing.border.Border etchedBorder
        DOCUMENT ME!
      • extents

        private int[] extents
        DOCUMENT ME!
      • fileMenu

        private javax.swing.JMenu fileMenu
        DOCUMENT ME!
      • font12

        private java.awt.Font font12
        DOCUMENT ME!
      • gbc

        private java.awt.GridBagConstraints gbc
        DOCUMENT ME!
      • haveVOIPoints

        private boolean haveVOIPoints
        DOCUMENT ME!
      • helpMenu

        private javax.swing.JMenu helpMenu
        DOCUMENT ME!
      • i

        private int i
        DOCUMENT ME!
      • j

        private int j
        DOCUMENT ME!
      • imageBufferA

        private float[] imageBufferA
        DOCUMENT ME!
      • imageBufferB

        private float[] imageBufferB
        DOCUMENT ME!
      • imageBufferOriginalB

        private float[] imageBufferOriginalB
        DOCUMENT ME!
      • imageSize

        private int imageSize
        DOCUMENT ME!
      • itemClose

        private javax.swing.JMenuItem itemClose
        DOCUMENT ME!
      • itemHelp

        private javax.swing.JMenuItem itemHelp
        DOCUMENT ME!
      • labelReferenceSlice

        private javax.swing.JLabel labelReferenceSlice
        DOCUMENT ME!
      • labelAdjustedSlice

        private javax.swing.JLabel labelAdjustedSlice
        DOCUMENT ME!
      • labelTable

        private java.util.Hashtable<java.lang.Integer,​javax.swing.JLabel> labelTable
        DOCUMENT ME!
      • labelTable2

        private java.util.Hashtable<java.lang.Integer,​javax.swing.JLabel> labelTable2
        DOCUMENT ME!
      • leftButton

        private javax.swing.JButton leftButton
        DOCUMENT ME!
      • logMagDisplay

        private boolean logMagDisplay
        DOCUMENT ME!
      • markerType

        private int[] markerType
        DOCUMENT ME!
      • minimumToolBarWidth

        private int minimumToolBarWidth
        DOCUMENT ME!
      • mode

        private int mode
        DOCUMENT ME!
      • movementGroup

        private javax.swing.ButtonGroup movementGroup
        DOCUMENT ME!
      • n

        private int n
        DOCUMENT ME!
      • newAlphaBlend

        private int newAlphaBlend
        DOCUMENT ME!
      • newExtents

        private int[] newExtents
        DOCUMENT ME!
      • nImage

        private int nImage
        DOCUMENT ME!
      • nVOI

        private int nVOI
        DOCUMENT ME!
      • openingMenuBar

        private javax.swing.JMenuBar openingMenuBar
        DOCUMENT ME!
      • pixBuffer

        private int[] pixBuffer
        DOCUMENT ME!
      • pixBufferB

        private int[] pixBufferB
        DOCUMENT ME!
      • pixelIncrement

        private float pixelIncrement
        DOCUMENT ME!
      • pixelIncrementButton

        private javax.swing.JButton pixelIncrementButton
        DOCUMENT ME!
      • pointSetA

        private double[][] pointSetA
        DOCUMENT ME!
      • pointSetB

        private double[][] pointSetB
        DOCUMENT ME!
      • refMark

        private int refMark
        DOCUMENT ME!
      • refMarkButton

        private javax.swing.JToggleButton refMarkButton
        DOCUMENT ME!
      • refMarkMinusButton

        private javax.swing.JButton refMarkMinusButton
        DOCUMENT ME!
      • rightButton

        private javax.swing.JButton rightButton
        DOCUMENT ME!
      • rotateButton

        private javax.swing.JToggleButton rotateButton
        DOCUMENT ME!
      • scrollPane

        private javax.swing.JScrollPane scrollPane
        DOCUMENT ME!
      • scrollPaneSize

        private int scrollPaneSize
        DOCUMENT ME!
      • secondImage

        private ModelImage secondImage
        DOCUMENT ME!
      • slider

        private javax.swing.JSlider slider
        DOCUMENT ME!
      • slider2

        private javax.swing.JSlider slider2
        DOCUMENT ME!
      • textReferenceSlice

        private javax.swing.JTextField textReferenceSlice
        DOCUMENT ME!
      • textAdjustedSlice

        private javax.swing.JTextField textAdjustedSlice
        DOCUMENT ME!
      • toolBar

        private javax.swing.JToolBar toolBar
        DOCUMENT ME!
      • toolBar2

        private javax.swing.JToolBar toolBar2
        DOCUMENT ME!
      • topPanel

        private javax.swing.JPanel topPanel
        DOCUMENT ME!
      • translateButton

        private javax.swing.JToggleButton translateButton
        DOCUMENT ME!
      • calculateCostButton

        private javax.swing.JButton calculateCostButton
      • upButton

        private javax.swing.JButton upButton
        DOCUMENT ME!
      • voi

        private VOI voi
        DOCUMENT ME!
      • VOIPoints

        private java.util.Vector<WildMagic.LibFoundation.Mathematics.Vector3f> VOIPoints
        DOCUMENT ME!
      • xDim

        private int xDim
        DOCUMENT ME!
      • xOrg

        private int[] xOrg
        DOCUMENT ME!
      • xPres

        private int[] xPres
        DOCUMENT ME!
      • xRes

        private float xRes
        DOCUMENT ME!
      • xRotation

        private float xRotation
        DOCUMENT ME!
      • xScreen

        private int xScreen
        DOCUMENT ME!
      • yScreen

        private int yScreen
        DOCUMENT ME!
      • yDim

        private int yDim
        DOCUMENT ME!
      • yOrg

        private int[] yOrg
        DOCUMENT ME!
      • yPres

        private int[] yPres
        DOCUMENT ME!
      • yRes

        private float yRes
        DOCUMENT ME!
      • yRotation

        private float yRotation
        DOCUMENT ME!
      • zoom

        private float zoom
        DOCUMENT ME!
      • zSlice

        private int zSlice
        DOCUMENT ME!
      • zSlice2

        private int zSlice2
        DOCUMENT ME!
      • zLastSlice

        private int zLastSlice
        DOCUMENT ME!
      • zLastSlice2

        private int zLastSlice2
        DOCUMENT ME!
      • costFunctionTextArea

        private javax.swing.JTextArea costFunctionTextArea
      • costFunctionScrollPane

        private javax.swing.JScrollPane costFunctionScrollPane
        Scroll Pane for the Text Area
      • simpleImg1

        private ModelSimpleImage simpleImg1
        Holds extents, other info about firstImage and SecondImage
      • simpleImg2

        private ModelSimpleImage simpleImg2
        Holds extents, other info about firstImage and SecondImage
      • tMatrix

        private TransMatrix tMatrix
        Identity matrix for testing cost
    • Constructor Detail

      • ViewJFrameRegistration

        public ViewJFrameRegistration​(ModelImage _image,
                                      ModelLUT _LUT)
        Makes a frame of the manually registered image.
        Parameters:
        _image - Model of image
        _LUT - Model of LUT for image
      • ViewJFrameRegistration

        public ViewJFrameRegistration​(ModelImage _image,
                                      ModelImage _image2,
                                      ModelLUT _LUT,
                                      ModelLUT _LUT2)
        Makes a frame of the manually registered image.
        Parameters:
        _image - the first image
        _image2 - the second image
        _LUT - lut for the first image
        _LUT2 - lut for the second image
    • Method Detail

      • SQR

        public static final double SQR​(double x)
        SQR = x^2.
        Parameters:
        x - DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        Calls various methods depending on the action.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Specified by:
        actionPerformed in class ViewJFrameBase
        Parameters:
        event - event that triggered function
      • buildXfrm

        public TransMatrix buildXfrm​(double[] p1,
                                     double[] p2,
                                     Jama.Matrix R)
        Builds 4x4 transformation matrix from R and T T=p2-R*p1.
        Parameters:
        p1 - from Match
        p2 - from Match
        R - matrix from Match
        Returns:
        transformation matrix
      • calculateResiduals

        public void calculateResiduals()
        Calculates the residuals of the least squares fit.
      • close

        public void close()
        Disposes of components and frame.
        Overrides:
        close in class ViewJFrameBase
      • componentResized

        public void componentResized​(java.awt.event.ComponentEvent event)
        Resizes frame and all components.
        Specified by:
        componentResized in interface java.awt.event.ComponentListener
        Overrides:
        componentResized in class ViewJFrameBase
        Parameters:
        event - event that triggered function
      • euclideanDistance

        public double euclideanDistance​(double[] ptA,
                                        double[] ptB)
        Calculates the Euclidean distance.
        Parameters:
        ptA - point A
        ptB - point B
        Returns:
        the euclidean distance between points
      • focusGained

        public void focusGained​(java.awt.event.FocusEvent event)
        Currently unused.
        Specified by:
        focusGained in interface java.awt.event.FocusListener
        Parameters:
        event - DOCUMENT ME!
      • focusLost

        public void focusLost​(java.awt.event.FocusEvent event)
        Currently unused.
        Specified by:
        focusLost in interface java.awt.event.FocusListener
        Parameters:
        event - DOCUMENT ME!
      • itemStateChanged

        public void itemStateChanged​(java.awt.event.ItemEvent event)
        sets the flags for the checkboxes.
        Specified by:
        itemStateChanged in interface java.awt.event.ItemListener
        Parameters:
        event - event that triggered this function
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent mouseEvent)
        unchanged.
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - event that triggered function
      • mouseDragged

        public void mouseDragged​(java.awt.event.MouseEvent mouseEvent)
        continually updates the image depending on where the mouse is - unchanged.
        Specified by:
        mouseDragged in interface java.awt.event.MouseMotionListener
        Parameters:
        mouseEvent - event that triggered this function
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent mouseEvent)
        unchanged.
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent mouseEvent)
        unchanged.
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • mouseMoved

        public void mouseMoved​(java.awt.event.MouseEvent mouseEvent)
        Changes the LUT text field display based on the Y value of the mouse when inside ViewJComponentLUT - unchanged.
        Specified by:
        mouseMoved in interface java.awt.event.MouseMotionListener
        Parameters:
        mouseEvent - event that triggered this function
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent mouseEvent)
        unchanged.
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - event that triggered function
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent mouseEvent)
        unchanged.
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - event that triggered function
      • removeControls

        public void removeControls()
        Removes the menu and controls of the main frame so that a new frame can load the main frame with the proper controls. Currently unused.
        Specified by:
        removeControls in class ViewJFrameBase
      • setActiveImage

        public void setActiveImage​(int active)
        Sets the active image for drawing VOIs. VOIs are only drawn in the active image. In addition, algorithms are executed on the active window.
        Specified by:
        setActiveImage in interface VOIManagerInterfaceListener
        Specified by:
        setActiveImage in class ViewJFrameBase
        Parameters:
        active - IMAGE_A or IMAGE_B
      • setAlphaBlend

        public void setAlphaBlend​(int value)
        Sets the alpha blending of parameter for two image displaying. Currently unused.
        Specified by:
        setAlphaBlend in class ViewJFrameBase
        Parameters:
        value - amount [0,100] that is the percentage of Image A to be displayed
      • setControls

        public void setControls()
        Sets the menu and controls (i.e. toolbars) of the main frame! This puts the menus and controls needed to controls the operations of this frame. Different image frames have different menu and controls. Currently unused.
        Specified by:
        setControls in class ViewJFrameBase
      • setDefaultMode

        public void setDefaultMode()
        setDefaultMode.
      • setEnabled

        public void setEnabled​(boolean flag)
        Controls whether or not the images/VOIs of the frame can be modified. Currently unused.
        Specified by:
        setEnabled in class ViewJFrameBase
        Parameters:
        flag - if true the image/VOIs can be modified; if false image/VOIs can NOT be modified
      • setImageB

        public void setImageB​(ModelImage _imageB)
        Sets the reference to imageB. Currently unused.
        Specified by:
        setImageB in class ViewJFrameBase
        Parameters:
        _imageB - Image to set the frame to
      • setLUTa

        public void setLUTa​(ModelLUT LUT)
        Sets the model LUT for the imageA.
        Overrides:
        setLUTa in class ViewJFrameBase
        Parameters:
        LUT - the model LUT
      • setLUTb

        public void setLUTb​(ModelLUT LUT)
        setLUTb - accessor that sets the model LUTb for the imageB.
        Overrides:
        setLUTb in class ViewJFrameBase
        Parameters:
        LUT - the model LUT
      • setMode

        public void setMode​(int mode)
        sets mode.
        Parameters:
        mode - DOCUMENT ME!
      • setMove

        public void setMove​(float xStart,
                            float yStart,
                            float xFinish,
                            float yFinish)
        If doDrag == false, this routine processes movements generated by mouse presses and releases. The mouse press location sets (xStart,yStart) and the mouse release location sets (xFinish,yFinish). If doDrag == true, this routine processes movements generated by mouse press and drag events.
        Parameters:
        xStart - DOCUMENT ME!
        yStart - DOCUMENT ME!
        xFinish - DOCUMENT ME!
        yFinish - DOCUMENT ME!
      • setPaintBitmapSwitch

        public void setPaintBitmapSwitch​(boolean paintBitmapSwitch)
        When switching the active image, take the paintBitmap of the previous active image as the paintBitmap of the new active image.
        Specified by:
        setPaintBitmapSwitch in class ViewJFrameBase
        Parameters:
        paintBitmapSwitch - if true don't copy the new acitve image mask
      • setRGBTA

        public void setRGBTA​(ModelRGB RGBT)
        Sets the RGB LUT table for ARGB image A.
        Specified by:
        setRGBTA in class ViewJFrameBase
        Parameters:
        RGBT - the new RGB LUT to be applied to the image
      • setRGBTB

        public void setRGBTB​(ModelRGB RGBT)
        Sets the RGB LUT table for ARGB image B.
        Specified by:
        setRGBTB in class ViewJFrameBase
        Parameters:
        RGBT - the new RGB LUT to be applied to the image
      • setRotationCenter

        public void setRotationCenter​(float xRot,
                                      float yRot)
        Sets the coordinates of the point the will be the new image rotation center.
        Parameters:
        xRot - DOCUMENT ME!
        yRot - DOCUMENT ME!
      • setSlice

        public void setSlice​(int slice)
        Sets the slice to be displayed and updates title frame.
        Specified by:
        setSlice in interface ViewImageUpdateInterface
        Parameters:
        slice - indicates image slice to be displayed
      • setTimeSlice

        public void setTimeSlice​(int slice)
        Sets the slice to be displayed and updates title frame. Currently unused.
        Specified by:
        setTimeSlice in interface ViewImageUpdateInterface
        Parameters:
        slice - indicates image time-slice (4th dimension) to be displayed
      • setTitle

        public void setTitle()
        sets the title of the frame with the image name and magnification.
        Specified by:
        setTitle in class ViewJFrameBase
      • stateChanged

        public void stateChanged​(javax.swing.event.ChangeEvent e)
        sets values based on knob along slider.
        Specified by:
        stateChanged in interface javax.swing.event.ChangeListener
        Overrides:
        stateChanged in class ViewJFrameBase
        Parameters:
        e - event that triggered this function
      • updateFrame

        public void updateFrame​(float sX,
                                float sY)
        DOCUMENT ME!
        Parameters:
        sX - zoom in the x dimension
        sY - zoom in the y dimension
      • updateImages

        public final boolean updateImages()
        This methods calls the componentImage's update method to redraw the screen.
        Specified by:
        updateImages in interface ViewImageUpdateInterface
        Returns:
        boolean confirming successful update
      • updateImages

        public final boolean updateImages​(boolean forceShow)
        Calls the componentImage's update method to redraw the screen. Without LUT changes.
        Specified by:
        updateImages in interface ViewImageUpdateInterface
        Parameters:
        forceShow - forces show to re import image and calc. java image
        Returns:
        boolean confirming successful update
      • updateImages

        public final boolean updateImages​(ModelLUT LUTa,
                                          ModelLUT LUTb,
                                          boolean forceShow)
        This methods calls the componentImage's update method to redraw the screen.
        Parameters:
        LUTa - LUT used to update imageA
        LUTb - LUT used to update imageB
        forceShow - forces show to re import image and calc. java image
        Returns:
        boolean confirming successful update
      • updateImages

        public final boolean updateImages​(ModelLUT LUTa,
                                          ModelLUT LUTb,
                                          boolean forceShow,
                                          int interpMode)
        This methods calls the componentImage's update method to redraw the screen.
        Specified by:
        updateImages in interface ViewImageUpdateInterface
        Parameters:
        LUTa - LUT used to update imageA
        LUTb - LUT used to update imageB
        forceShow - forces show to re import image and calc. java image
        interpMode - image interpolation method (Nearest or Smooth)
        Returns:
        boolean confirming successful update
      • windowActivated

        public void windowActivated​(java.awt.event.WindowEvent event)
        unchanged.
        Specified by:
        windowActivated in interface java.awt.event.WindowListener
        Overrides:
        windowActivated in class ViewJFrameBase
        Parameters:
        event - DOCUMENT ME!
      • windowClosed

        public void windowClosed​(java.awt.event.WindowEvent event)
        unchanged.
        Specified by:
        windowClosed in interface java.awt.event.WindowListener
        Overrides:
        windowClosed in class ViewJFrameBase
        Parameters:
        event - DOCUMENT ME!
      • windowClosing

        public void windowClosing​(java.awt.event.WindowEvent event)
        Calls dispose.
        Specified by:
        windowClosing in interface java.awt.event.WindowListener
        Overrides:
        windowClosing in class ViewJFrameBase
        Parameters:
        event - event that triggered function
      • windowDeactivated

        public void windowDeactivated​(java.awt.event.WindowEvent event)
        unchanged.
        Specified by:
        windowDeactivated in interface java.awt.event.WindowListener
        Overrides:
        windowDeactivated in class ViewJFrameBase
        Parameters:
        event - DOCUMENT ME!
      • windowDeiconified

        public void windowDeiconified​(java.awt.event.WindowEvent event)
        unchanged.
        Specified by:
        windowDeiconified in interface java.awt.event.WindowListener
        Overrides:
        windowDeiconified in class ViewJFrameBase
        Parameters:
        event - DOCUMENT ME!
      • windowIconified

        public void windowIconified​(java.awt.event.WindowEvent event)
        unchanged.
        Specified by:
        windowIconified in interface java.awt.event.WindowListener
        Overrides:
        windowIconified in class ViewJFrameBase
        Parameters:
        event - DOCUMENT ME!
      • windowOpened

        public void windowOpened​(java.awt.event.WindowEvent event)
        Unchanged.
        Specified by:
        windowOpened in interface java.awt.event.WindowListener
        Overrides:
        windowOpened in class ViewJFrameBase
        Parameters:
        event - DOCUMENT ME!
      • addControlPanel

        private void addControlPanel​(java.awt.Component c,
                                     java.awt.GridBagConstraints gbc,
                                     int x,
                                     int y,
                                     int w,
                                     int h)
        Adds a component to the control panel.
        Parameters:
        c - component
        gbc - GridBagConstraints
        x - DOCUMENT ME!
        y - DOCUMENT ME!
        w - DOCUMENT ME!
        h - DOCUMENT ME!
      • addTopPanel

        private void addTopPanel​(java.awt.Component c,
                                 java.awt.GridBagConstraints gbc,
                                 int x,
                                 int y,
                                 int w,
                                 int h)
        Adds a component to the top panel.
        Parameters:
        c - component
        gbc - GridbagConstraints
        x - DOCUMENT ME!
        y - DOCUMENT ME!
        w - DOCUMENT ME!
        h - DOCUMENT ME!
      • buildControlPanel

        private void buildControlPanel​(boolean isOne)
        panel that sets the at rest frame number and the desired frames per second.
        Parameters:
        isOne - one 3D (2.5) image, if false two 2D images are passed in and the top two sliders are not needed.
      • buildMenu

        private void buildMenu()
        this method builds a menu which contains the options Save image as and Close Registration.
      • buildRegistrationToolBar

        private javax.swing.JToolBar buildRegistrationToolBar​(java.awt.event.ActionListener al)
        builds the first registration toolbar.
        Parameters:
        al - ActionListener
        Returns:
        DOCUMENT ME!
      • buildScrollPane

        private void buildScrollPane()
        Make a scroll frame and puts an image component into it.
      • buildToolBar2

        private javax.swing.JToolBar buildToolBar2​(java.awt.event.ActionListener al)
        builds the second registration toolbar.
        Parameters:
        al - ActionListener
        Returns:
        DOCUMENT ME!
      • createLabel

        private javax.swing.JLabel createLabel​(java.lang.String title)
        Helper method to create a label with the proper font and font color.
        Parameters:
        title - Text of the label.
        Returns:
        New label.
      • init

        private void init​(boolean isOne)
        DOCUMENT ME!
        Parameters:
        isOne - one 3D (2.5) image, if false two 2D images are passed in and the top two sliders are not needed.
      • leastSquares

        private boolean leastSquares()
        This code comes from matchBtoA() and buildXfrm(double p1[],double p2[], Matrix R) in AlgorithmRegLeastSquares.
        Returns:
        DOCUMENT ME!
      • makeSeparator

        private javax.swing.JButton makeSeparator()
        makes a separator for the use in the toolbars.
        Returns:
        DOCUMENT ME!
      • tpSpline

        private void tpSpline()
        Thin-plate registration method.
      • transform

        private void transform()
        Transforms the image.
      • transformC

        private void transformC()
        Transforms color image.
      • calculateCostFunctionValues

        private void calculateCostFunctionValues()
      • initVOI

        private void initVOI()