Class JDialogRegistrationOAR2D

All Implemented Interfaces:
AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, ActionDiscovery, ActionListener, FocusListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

public class JDialogRegistrationOAR2D extends JDialogScriptableBase implements AlgorithmInterface, ActionDiscovery, ScriptableActionInterface
Dialog to get user input, then call AlgorithmRegOAR2D.
Author:
Neva Cherniavsky
See Also:
  • Field Details

    • serialVersionUID

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

      private final int POWELL
      See Also:
    • ELSUNC

      private final int ELSUNC
      See Also:
    • LEVENBERG_MARQUARDT

      private final int LEVENBERG_MARQUARDT
      See Also:
    • NL2SOL

      private final int NL2SOL
      See Also:
    • searchAlgorithm

      private int searchAlgorithm
    • advancedDialog

      private JDialog advancedDialog
      Variables for Advanced Settings dialog.
    • maxIterationsText

      private JTextField maxIterationsText
      DOCUMENT ME!
    • numMinText

      private JTextField numMinText
      DOCUMENT ME!
    • bruteForceCheckBox

      private JCheckBox bruteForceCheckBox
      CheckBox to turn brute-force registration on or off:.
    • bruteForceDialog

      private JDialog bruteForceDialog
      Dialog to set the brute-force registration parameters:.
    • buttonWeightInput

      private JButton buttonWeightInput
      DOCUMENT ME!
    • buttonWeightRef

      private JButton buttonWeightRef
      DOCUMENT ME!
    • coarseRateText

      private JTextField coarseRateText
      DOCUMENT ME!
    • comboBoxCostFunct

      private JComboBox comboBoxCostFunct
      DOCUMENT ME!
    • comboBoxSearchAlgo

      private JComboBox comboBoxSearchAlgo
    • comboBoxDOF

      private JComboBox comboBoxDOF
      DOCUMENT ME!
    • comboBoxImage

      private JComboBox comboBoxImage
      DOCUMENT ME!
    • comboBoxInterp

      private JComboBox comboBoxInterp
      DOCUMENT ME!
    • comboBoxInterp2

      private JComboBox comboBoxInterp2
      DOCUMENT ME!
    • cost

      private int cost
      DOCUMENT ME!
    • interp

      private int interp
      DOCUMENT ME!
    • interp2

      private int interp2
      DOCUMENT ME!
    • DOF

      private int DOF
      DOCUMENT ME!
    • displayTransform

      private boolean displayTransform
      DOCUMENT ME!
    • doColor

      private boolean doColor
      DOCUMENT ME!
    • doColorCheckBox

      private JCheckBox doColorCheckBox
      CheckBox to turn color registration on or off:.
    • doSubsample

      private boolean doSubsample
      DOCUMENT ME!
    • doJTEM

      private boolean doJTEM
    • doMultiThread

      private boolean doMultiThread
    • fileNameWRef

      private String fileNameWRef
      DOCUMENT ME!
    • directoryWRef

      private String directoryWRef
      DOCUMENT ME!
    • fileNameWInput

      private String fileNameWInput
      DOCUMENT ME!
    • directoryWInput

      private String directoryWInput
      DOCUMENT ME!
    • fineRateText

      private JTextField fineRateText
      DOCUMENT ME!
    • inputWeightImage

      private ModelImage inputWeightImage
      DOCUMENT ME!
    • refWeightImage

      private ModelImage refWeightImage
      DOCUMENT ME!
    • labelCoarse

      private JLabel labelCoarse
      DOCUMENT ME!
    • labelCoarseDegrees

      private JLabel labelCoarseDegrees
      DOCUMENT ME!
    • labelFine

      private JLabel labelFine
      DOCUMENT ME!
    • labelFineDegrees

      private JLabel labelFineDegrees
      DOCUMENT ME!
    • labelInterp2

      private JLabel labelInterp2
      DOCUMENT ME!
    • labelRotateDegrees

      private JLabel labelRotateDegrees
      DOCUMENT ME!
    • labelRotateRange

      private JLabel labelRotateRange
      DOCUMENT ME!
    • labelRotateRangeTo

      private JLabel labelRotateRangeTo
      DOCUMENT ME!
    • m_bSubsetDialog

      private boolean m_bSubsetDialog
      If true the dialog for this instance of JDialogRegistrationOAR2D will not activate the AlgorithmRegOAR2D:.
    • matchImage

      private ModelImage matchImage
      DOCUMENT ME!
    • maxIterations_def

      private int maxIterations_def
      DOCUMENT ME!
    • numMinima_def

      private int numMinima_def
      DOCUMENT ME!
    • maxIterations

      private int maxIterations
      DOCUMENT ME!
    • noneRadio

      private JRadioButton noneRadio
      DOCUMENT ME!
    • numMinima

      private int numMinima
      DOCUMENT ME!
    • refImage

      private ModelImage refImage
      DOCUMENT ME!
    • reg2

      private AlgorithmRegOAR2D reg2
      DOCUMENT ME!
    • reg2E

      private AlgorithmRegELSUNCOAR2D reg2E
    • resultImage

      private ModelImage resultImage
      DOCUMENT ME!
    • rotateBegin

      private float rotateBegin
      DOCUMENT ME!
    • rotateEnd

      private float rotateEnd
      DOCUMENT ME!
    • coarseRate

      private float coarseRate
      DOCUMENT ME!
    • fineRate

      private float fineRate
      DOCUMENT ME!
    • rotateBeginText

      private JTextField rotateBeginText
      DOCUMENT ME!
    • rotateEndText

      private JTextField rotateEndText
      DOCUMENT ME!
    • rotationBF

      private float rotationBF
      DOCUMENT ME!
    • xscaleBF

      private float xscaleBF
      DOCUMENT ME!
    • yscaleBF

      private float yscaleBF
      DOCUMENT ME!
    • rotationText

      private JTextField rotationText
      Brute-force registration parameters:.
    • translationText

      private JTextField translationText
      Brute-force registration parameters:.
    • xscaleText

      private JTextField xscaleText
      Brute-force registration parameters:.
    • yscaleText

      private JTextField yscaleText
      Brute-force registration parameters:.
    • scaleStepsText

      private JTextField scaleStepsText
      Brute-force registration parameters:.
    • sampleCheckBox

      private JCheckBox sampleCheckBox
      DOCUMENT ME!
    • jtemCheckBox

      private JCheckBox jtemCheckBox
      DOCUMENT ME!
    • multiThreadCheckBox

      private JCheckBox multiThreadCheckBox
    • scaleStepsBF

      private int scaleStepsBF
      DOCUMENT ME!
    • textInput

      private JTextField textInput
      DOCUMENT ME!
    • textRef

      private JTextField textRef
      DOCUMENT ME!
    • transformCheckbox

      private JCheckBox transformCheckbox
      DOCUMENT ME!
    • translationBF

      private int translationBF
      DOCUMENT ME!
    • UI

      private ViewUserInterface UI
      DOCUMENT ME!
    • voiRadio

      private JRadioButton voiRadio
      DOCUMENT ME!
    • voisOnly

      private boolean voisOnly
      DOCUMENT ME!
    • weighted

      private boolean weighted
      DOCUMENT ME!
    • weightRadio

      private JRadioButton weightRadio
      DOCUMENT ME!
    • outOfBoundsLabel

      private JLabel outOfBoundsLabel
    • outOfBoundsComboBox

      private JComboBox outOfBoundsComboBox
    • valueLabel

      private JLabel valueLabel
    • valueText

      private JTextField valueText
    • imageMin

      private double imageMin
    • imageMax

      private double imageMax
    • dataType

      private int dataType
    • outOfBoundsIndex

      private int outOfBoundsIndex
      Tells how to select fill value for out of bounds data 0 for image minimum 1 for NaN for float, zero otherwise. 2 for user defined 3 for image maximum
    • fillValue

      private float fillValue
    • matrixLabel

      private JLabel matrixLabel
    • matrixComboBox

      private JComboBox matrixComboBox
    • matrixDirectory

      private String matrixDirectory
    • userDirectoryLabel

      private JLabel userDirectoryLabel
    • userDirectoryText

      private JTextField userDirectoryText
  • Constructor Details

    • JDialogRegistrationOAR2D

      public JDialogRegistrationOAR2D()
      Empty constructor needed for dynamic instantiation (used during scripting).
    • JDialogRegistrationOAR2D

      public JDialogRegistrationOAR2D(Frame theParentFrame, ModelImage im)
      Creates new dialog for user to choose type of 2D image registration algorithm to run.
      Parameters:
      theParentFrame - Parent frame.
      im - Source image.
    • JDialogRegistrationOAR2D

      public JDialogRegistrationOAR2D(Frame theParentFrame, ModelImage ref, ModelImage match, int iCost, int iDOF, int iInterp, float fRotateBegin, float fRotateEnd, float fCoarseRate, float fFineRate, boolean bDoSubsample, int iMaxIterations, int iNumMin, int iInterp2, boolean bDisplayTransform, float fRotateBF, float fXScaleBF, float fYScaleBF, int iScaleStepsBF, int iTranslationBF)
      Creates new dialog for user to choose type of 2D image registration algorithm to run.
      Parameters:
      theParentFrame - Parent frame.
      ref - Reference image.
      match - Match image.
      iCost - default cost choice.
      iDOF - default degrees of freedom choice.
      iInterp - default image interpolation choice.
      fRotateBegin - default rotation range choice.
      fRotateEnd - default rotation range choice.
      fCoarseRate - default rotation coarse rate choice.
      fFineRate - default rotation fine rate choice.
      bDoSubsample - default subsampling choice.
      iMaxIterations - default max iterations choice.
      iNumMin - default number of minima choice.
      iInterp2 - default display interpolation choice.
      bDisplayTransform - default display transformed image choice.
      fRotateBF - default rotation angle range for brute-force registration.
      fXScaleBF - default scale in x range for brute-force registration.
      fYScaleBF - default scale in x range for brute-force registration.
      iScaleStepsBF - default number of steps to divide scale range brute-force registration.
      iTranslationBF - default translation range for brute-force registration.
  • Method Details

    • actionPerformed

      public void actionPerformed(ActionEvent event)
      Closes dialog box when the OK button is pressed, sets the variables, 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 algorithms when it has completed or failed to complete.
      Specified by:
      algorithmPerformed in interface AlgorithmInterface
      Parameters:
      algorithm - Algorithm that caused the event.
    • getBruteForce

      public boolean getBruteForce()
      Accessor to get whether or not to do the brute-force registration.
      Returns:
      bruteForceCheckBox.isSelected()
    • getCoarseBegin

      public float getCoarseBegin()
      Accessor to get the coarse sample begin.
      Returns:
      rotateBegon Coarse begin
    • getCoarseEnd

      public float getCoarseEnd()
      Accessor to get the coarse sample end.
      Returns:
      rotateEnd Coarse end
    • getCoarseRate

      public float getCoarseRate()
      Accessor to get the coarse sample rate.
      Returns:
      coarseRate, Coarse rate
    • getCostChoice

      public int getCostChoice()
      Accessor to get the choice of cost function.
      Returns:
      cost, Cost function.
    • getDisplayTransform

      public boolean getDisplayTransform()
      Accessor to get the display transform flag.
      Returns:
      displayTransform flag true means display the transformed image.
    • getDOF

      public int getDOF()
      Accessor to get the degrees of freedom.
      Returns:
      DOF, Degrees of freedom
    • getFineRate

      public float getFineRate()
      Accessor to get the fine sample rate.
      Returns:
      fineRate, Fine rate
    • getInterp

      public int getInterp()
      Accessor to get the initial interpolation.
      Returns:
      interp, Interpolation
    • getInterp2

      public int getInterp2()
      Accessor to get the final interpolation.
      Returns:
      interp2, Interpolation
    • getMaxIterations

      public int getMaxIterations()
      Accessor to get maxIterations.
      Returns:
      maxIterations
    • getNumMinima

      public int getNumMinima()
      Accessor to get numMinima.
      Returns:
      numMinima
    • getResultImage

      public ModelImage getResultImage()
      Accessor to get the result image.
      Returns:
      Result image.
    • getRotationBruteForce

      public float getRotationBruteForce()
      Accessor to get the rotation range for brute force registration:
      Returns:
      rotationBF, range of rotations
    • getScaleStepsBruteForce

      public int getScaleStepsBruteForce()
      Accessor to get the y scale range for brute force registration:
      Returns:
      scaleStepsBF, number of divisions for scale
    • getSubsample

      public boolean getSubsample()
      Accessor to get whether or not subsampling occurs.
      Returns:
      doSubsample
    • getTranslationBruteForce

      public int getTranslationBruteForce()
      Accessor to get the translation range for brute force registration:
      Returns:
      translationBF, range of x,y translations
    • getXScaleBruteForce

      public float getXScaleBruteForce()
      Accessor to get the x scale range for brute force registration:
      Returns:
      xscaleBF, range of scales in x
    • getYScaleBruteForce

      public float getYScaleBruteForce()
      Accessor to get the y scale range for brute force registration:
      Returns:
      yscaleBF, range of scales in y
    • itemStateChanged

      public void itemStateChanged(ItemEvent event)
      Changes the interpolation box to enabled or disabled depending on if the transform box is checked or not.
      Specified by:
      itemStateChanged in interface ItemListener
      Overrides:
      itemStateChanged in class JDialogBase
      Parameters:
      event - Event that triggered this function.
    • setCoarseBegin

      public void setCoarseBegin(float x)
      Accessor to set the coarse sample begin.
      Parameters:
      x - Coarse begin
    • setCoarseEnd

      public void setCoarseEnd(float x)
      Accessor to set the coarse sample end.
      Parameters:
      x - Coarse end
    • setCoarseRate

      public void setCoarseRate(float x)
      Accessor to set the coarse sample rate.
      Parameters:
      x - Coarse rate
    • setCostChoice

      public void setCostChoice(int x)
      Accessor to set the choice of cost function.
      Parameters:
      x - Cost function.
    • setDisplayTransform

      public void setDisplayTransform(boolean flag)
      Accessor to set the display transform flag.
      Parameters:
      flag - true means display the transformed image.
    • setDOF

      public void setDOF(int x)
      Accessor to set the degrees of freedom.
      Parameters:
      x - Degrees of freedom
    • setFineRate

      public void setFineRate(float x)
      Accessor to set the fine sample rate.
      Parameters:
      x - Fine rate
    • setInputWeightImage

      public void setInputWeightImage(ModelImage im)
      Accessor to set the input weight image.
      Parameters:
      im - Input weight image.
    • setInterp

      public void setInterp(int x)
      Accessor to set the initial interpolation.
      Parameters:
      x - Interpolation
    • setInterp2

      public void setInterp2(int x)
      Accessor to set the final interpolation.
      Parameters:
      x - Interpolation
    • setReferenceImage

      public void setReferenceImage(ModelImage im)
      Accessor to set the reference image.
      Parameters:
      im - Reference image.
    • setReferenceWeightImage

      public void setReferenceWeightImage(ModelImage im)
      Accessor to set the reference weight image.
      Parameters:
      im - Reference weight image.
    • setSubsample

      public void setSubsample(boolean doSubsample)
      Accessor to set whether or not subsampling occurs.
      Parameters:
      doSubsample - DOCUMENT ME!
    • setSearchAlgorithm

      public void setSearchAlgorithm(int searchAlgorithm)
      Parameters:
      searchAlgorithm -
    • setMultiThread

      public void setMultiThread(boolean doMultiThread)
      Accessor to set whether or not powell's algorithm uses multithreading
      Parameters:
      doMultiThread -
    • setVoisOnly

      public void setVoisOnly(boolean flag)
      Accessor to set the VOIs only flag.
      Parameters:
      flag - true then only register the parts of the images in the VOIs.
    • setWeighted

      public void setWeighted(boolean flag)
      Accessor to set the weighted images flag.
      Parameters:
      flag - true means there are weighted images.
    • setOutOfBoundsIndex

      public void setOutOfBoundsIndex(int outOfBoundsIndex)
      tells how to select fill value for out of bounds data 0 for image minimum 1 for NaN for float, zero otherwise. 2 for user defined 3 for image max
      Parameters:
      outOfBoundsIndex -
    • setFillValue

      public void setFillValue(float fillValue)
      Accessor to set intensity value for out of bounds data
      Parameters:
      fillValue -
    • setMatrixDirectory

      public void setMatrixDirectory(String matrixDirectory)
      Accessor to set directory in which the matrix file is stored
      Parameters:
      matrixDirectory -
    • callAlgorithm

      protected void callAlgorithm()
      Calls the algorithm with the set-up parameters.
      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.
    • buildAdvancedDialog

      private JDialog buildAdvancedDialog(int maxIter, int numMinima)
      Build advanced settings dialog. Returns JDialog.
      Parameters:
      maxIter - DOCUMENT ME!
      numMinima - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • buildBruteForceDialog

      private JDialog buildBruteForceDialog()
      Builds the bruteForceDialog so the user can set the brute-force registration parameters:
      Returns:
      bruteForceDialog
    • buildImgComboBox

      private JComboBox buildImgComboBox(ModelImage image)
      Builds a list of images. Returns combobox.
      Parameters:
      image - DOCUMENT ME!
      Returns:
      Newly created combo box.
    • init

      private void init()
      Initializes the GUI components and displays the dialog.
    • initPresets

      private void initPresets()
      Initializes the GUI components, based on the preset values set by the class calling the constructor. Then displays the dialog.
    • setVariables

      private boolean setVariables()
      Sets the variables needed to call the registration algorithm based on the values entered in the dialog.
      Returns:
      true if the variables are properly set, false otherwise.
    • testType

      private boolean testType(int type, float value)
      Determine if the value is in the image type range and within the float range since AlgorithmTransform does not use double buffers.
      Parameters:
      type - image type
      value - value tested
      Returns:
      true if value is within acceptable range
    • 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.