Class JDialogRegistrationBSpline

  • All Implemented Interfaces:
    AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, ActionDiscovery, 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 JDialogRegistrationBSpline
    extends JDialogScriptableBase
    implements AlgorithmInterface, ActionDiscovery
    This class is used to display the options to the user for performing 2D, 3D, and 2.5D B-Spline registration. In the case of 2D and 3D, a separate target image is specified. In the case of 2.5D, the target image (slice) is selected from the input source image. The registration is always performed against the target image so the output registered image has the values from the input source image but the dimensions of the target for 2D/3D and the dimensions of the source image for 2.5D. The same dialog is presented for 2D and 3D. The dialog is nearly the same for 2.5D except for how the target slice is selected.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JDialogRegistrationBSpline.Controls
      Private class which holds dialog controls associated with the values in the AlgorithmRegBSpline.Options class for a "pass" of registration.
      • 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
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Method Summary

      All Methods Static 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, sets up the variables needed for running the algorithm, and calls the algorithm.
      void algorithmPerformed​(AlgorithmBase algorithm)
      This method is required if the AlgorithmPerformed interface is implemented.
      protected void callAlgorithm()
      Runs the algorithm.
      ParameterTable createInputParameters()
      Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used in setGUIFromParams()).
      ParameterTable createOutputParameters()
      Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).
      protected void doPostAlgorithmActions()
      Store the result image in the script runner's image table now that the action execution is finished.
      ActionMetadata getActionMetadata()
      Return meta-information about this discoverable action for categorization and labeling purposes.
      static java.lang.String[] getNamesCompatibleTargetImages​(ModelImage kImageSrc)
      Find the frame images that are compatible as targets with the specified source image for the purpose of B-spline registration.
      java.lang.String getOutputImageName​(java.lang.String imageParamName)
      Returns the name of an image output by this algorithm, the image returned depends on the parameter label given (which can be used to retrieve the image object from the image registry).
      private void initControls()
      Initializes the GUI components and displays the dialog.
      boolean isActionComplete()
      Returns whether the action has successfully completed its execution.
      private boolean isRefImageSourceSlice()
      Convenience method to determine if this is a 2.5D registration where the reference (target) image is once of the slices in the source image.
      void itemStateChanged​(java.awt.event.ItemEvent event)
      Implementation of JDialogBase abstract method.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      protected void storeParamsFromGUI()
      Record the parameters just used to run this algorithm in a script.
      private void userSetCostFunction()
      Called to create the RegistrationMeasure-derived class associated with the current selection in the combo box of possible registration measures.
      private void userSetDefaults()
      Called to reset all of the controls to their default values.
      private void userSetMultiPassControls()
      Called to setup controls passed on the current state of the check box for selecting single- or two-pass registration.
      private void userSetRefImage​(ModelImage image)
      Accessor to set the target image.
      private void userSetTargetSlice()
      Called whenever the user changes the selection of the target slice for 2.5D image registration.
      • 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • serialVersionUID

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

        private java.lang.String kStringDimension
        DOCUMENT ME.*
      • m_akNamesCompatibleTargetImages

        private java.lang.String[] m_akNamesCompatibleTargetImages
        Contains names of compatible target images that can be registered to the input source image for 2D/3D registration. Null reference for 2.5D registration.
      • m_bCreateDeformationImage

        private boolean m_bCreateDeformationImage
        Flag set if the deformation computation is to be performed. Reflects the state of the associated check box in the dialog.
      • m_iTargetSlice

        private int m_iTargetSlice
        Index of the slice from the source image to use for 2.5 registration. The index may be -1 to indicate registration is with adjacent slice. Reflects the state of the target slice radio buttons and the combo box if a particular reference slice is to be used.
      • m_kAlgorithmReg

        private AlgorithmRegBSpline m_kAlgorithmReg
        Flag set if the deformation computation is to be performed.
      • m_kCheckCreateDeformationImage

        private javax.swing.JCheckBox m_kCheckCreateDeformationImage
        DOCUMENT ME!
      • m_kCheckMultiPass

        private javax.swing.JCheckBox m_kCheckMultiPass
        DOCUMENT ME!
      • m_kComboBoxCostFunction

        private javax.swing.JComboBox m_kComboBoxCostFunction
        DOCUMENT ME!
      • m_kComboBoxTargetImage

        private javax.swing.JComboBox m_kComboBoxTargetImage
        Controls displayed in the dialog box. All of these controls are always displayed unless otherwise noted.
      • m_kComboBoxTargetSlice

        private javax.swing.JComboBox m_kComboBoxTargetSlice
        DOCUMENT ME!
      • m_kControlsPass1

        private JDialogRegistrationBSpline.Controls m_kControlsPass1
        Container for controls to select the parameters for the first pass of registration. These controls are always displayed.
      • m_kControlsPass2

        private JDialogRegistrationBSpline.Controls m_kControlsPass2
        Container for controls to select the parameters for the optional second pass of registration. These controls are created but are only displayed when the check box is selected for two-pass registration.
      • m_kImageDef

        private ModelImage m_kImageDef
        Reference to new image creatd with computed deformation resulting from registration. Null reference is deformation computation is not selected.
      • m_kImageReg

        private ModelImage m_kImageReg
        Reference to new image created with result of registration of source image. Cannot be null.
      • m_kImageSrc

        private ModelImage m_kImageSrc
        Reference to the input source image. Cannot be null.
      • m_kImageTrg

        private ModelImage m_kImageTrg
        Reference to the selected target image. Null reference for 2.5D registration.
      • m_kLabelIterationsPass1

        private javax.swing.JLabel m_kLabelIterationsPass1
        DOCUMENT ME!
      • m_kLabelIterationsPass2

        private javax.swing.JLabel m_kLabelIterationsPass2
        DOCUMENT ME!
      • m_kLabelOptionsPass1

        private javax.swing.JLabel m_kLabelOptionsPass1
        DOCUMENT ME!
      • m_kLabelOptionsPass2

        private javax.swing.JLabel m_kLabelOptionsPass2
        DOCUMENT ME!
      • m_kOptionsPass1

        private AlgorithmRegBSpline.Options m_kOptionsPass1
        Reference to parameters to use for first pass of registration. Cannot be null.
      • m_kOptionsPass2

        private AlgorithmRegBSpline.Options m_kOptionsPass2
        Reference to parameters to use for optional second pass of registration. Null reference if only a single pass of registration is to be performed.
      • m_kRadioSliceAdjacent

        private javax.swing.JRadioButton m_kRadioSliceAdjacent
        DOCUMENT ME!
      • m_kRadioSliceReference

        private javax.swing.JRadioButton m_kRadioSliceReference
        DOCUMENT ME!
      • m_kRegMeasure

        private RegistrationMeasure m_kRegMeasure
        Reference to concrete implementation of the RegistrationMeasure abstract class which defines the particular measure to use during registration. Cannot be null. Reflects the selection in the associated combo box in the dialog.
      • m_kUI

        private ViewUserInterface m_kUI
        Used for scripting and to access the currently registered images.
    • Constructor Detail

      • JDialogRegistrationBSpline

        public JDialogRegistrationBSpline()
        Empty constructor needed for dynamic instantiation. Used primarily for the script to store variables and run the algorithm. No actual dialog will appear but the set up info and result image will be stored here.
      • JDialogRegistrationBSpline

        public JDialogRegistrationBSpline​(java.awt.Frame kParentFrame,
                                          ModelImage kImageSrc,
                                          java.lang.String[] akNamesCompatibleTargetImages)
        Creates new registration dialog.
        Parameters:
        kParentFrame - Parent frame
        kImageSrc - Source image
        akNamesCompatibleTargetImages - String[] Array containing the names of target images which are compatible for registering to the input source image. This list must contain at least one image name and the list must not contain the name of the input source image. A target image is used for 2D/3D registration. If this reference is null, then the registration is for 2.5 meaning the target image will be a selected slice from within the 3D image.
    • Method Detail

      • getNamesCompatibleTargetImages

        public static java.lang.String[] getNamesCompatibleTargetImages​(ModelImage kImageSrc)
        Find the frame images that are compatible as targets with the specified source image for the purpose of B-spline registration.
        Parameters:
        kImageSrc - ModelImage Reference to the source image.
        Returns:
        String[] Array of names of compatible images.
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        Closes dialog box when the OK button is pressed, sets up the variables needed for running the algorithm, and calls the algorithm.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Overrides:
        actionPerformed in class JDialogBase
        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 algorithm when it has completed or failed to to complete, so that the dialog can display the result image and/or clean up.
        Specified by:
        algorithmPerformed in interface AlgorithmInterface
        Parameters:
        algorithm - Algorithm that caused the event.
      • itemStateChanged

        public void itemStateChanged​(java.awt.event.ItemEvent event)
        Implementation of JDialogBase abstract method. Method to handle item events.
        Specified by:
        itemStateChanged in interface java.awt.event.ItemListener
        Overrides:
        itemStateChanged in class JDialogBase
        Parameters:
        event - Event that caused the method to fire
      • 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 class JDialogScriptableBase
      • 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 class JDialogScriptableBase
      • initControls

        private void initControls()
        Initializes the GUI components and displays the dialog.
      • isRefImageSourceSlice

        private boolean isRefImageSourceSlice()
        Convenience method to determine if this is a 2.5D registration where the reference (target) image is once of the slices in the source image.
        Returns:
        boolean
      • userSetCostFunction

        private void userSetCostFunction()
        Called to create the RegistrationMeasure-derived class associated with the current selection in the combo box of possible registration measures.
      • userSetDefaults

        private void userSetDefaults()
        Called to reset all of the controls to their default values.
      • userSetMultiPassControls

        private void userSetMultiPassControls()
        Called to setup controls passed on the current state of the check box for selecting single- or two-pass registration.
      • userSetRefImage

        private void userSetRefImage​(ModelImage image)
        Accessor to set the target image.
        Parameters:
        image - The target image.
      • userSetTargetSlice

        private void userSetTargetSlice()
        Called whenever the user changes the selection of the target slice for 2.5D image registration.
      • getActionMetadata

        public ActionMetadata getActionMetadata()
        Return meta-information about this discoverable action for categorization and labeling purposes.
        Specified by:
        getActionMetadata in interface ActionDiscovery
        Returns:
        Metadata for this action.
      • createInputParameters

        public ParameterTable createInputParameters()
        Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used in setGUIFromParams()).
        Specified by:
        createInputParameters in interface ActionDiscovery
        Returns:
        A parameter table listing the inputs of this algorithm.
      • createOutputParameters

        public ParameterTable createOutputParameters()
        Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).
        Specified by:
        createOutputParameters in interface ActionDiscovery
        Returns:
        A parameter table listing the outputs of this algorithm.
      • getOutputImageName

        public java.lang.String getOutputImageName​(java.lang.String imageParamName)
        Returns the name of an image output by this algorithm, the image returned depends on the parameter label given (which can be used to retrieve the image object from the image registry).
        Specified by:
        getOutputImageName in interface ActionDiscovery
        Parameters:
        imageParamName - The output image parameter label for which to get the image name.
        Returns:
        The image name of the requested output image parameter label.
      • isActionComplete

        public boolean isActionComplete()
        Returns whether the action has successfully completed its execution.
        Specified by:
        isActionComplete in interface ActionDiscovery
        Returns:
        True, if the action is complete. False, if the action failed or is still running.