Class JDialogRegistrationBSpline

All Implemented Interfaces:
AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, ActionDiscovery, ActionListener, FocusListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, 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:
  • Field Details

    • serialVersionUID

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

      private String kStringDimension
      DOCUMENT ME.*
    • m_akNamesCompatibleTargetImages

      private 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 JCheckBox m_kCheckCreateDeformationImage
      DOCUMENT ME!
    • m_kCheckMultiPass

      private JCheckBox m_kCheckMultiPass
      DOCUMENT ME!
    • m_kComboBoxCostFunction

      private JComboBox m_kComboBoxCostFunction
      DOCUMENT ME!
    • m_kComboBoxTargetImage

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

      private 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 JLabel m_kLabelIterationsPass1
      DOCUMENT ME!
    • m_kLabelIterationsPass2

      private JLabel m_kLabelIterationsPass2
      DOCUMENT ME!
    • m_kLabelOptionsPass1

      private JLabel m_kLabelOptionsPass1
      DOCUMENT ME!
    • m_kLabelOptionsPass2

      private 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 JRadioButton m_kRadioSliceAdjacent
      DOCUMENT ME!
    • m_kRadioSliceReference

      private 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 Details

    • 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(Frame kParentFrame, ModelImage kImageSrc, 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 Details

    • getNamesCompatibleTargetImages

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

      protected void callAlgorithm()
      Runs the algorithm.
      Specified by:
      callAlgorithm in class JDialogScriptableBase
    • 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
    • storeParamsFromGUI

      protected void storeParamsFromGUI() throws ParserException
      Record the parameters just used to run this algorithm in a script.
      Specified by:
      storeParamsFromGUI in class JDialogScriptableBase
      Throws:
      ParserException - If there is a problem creating/recording the new parameters.
    • 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 String getOutputImageName(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.