Class JDialogFFT

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

Dialog to get user input, then call the algorithm. The user has the option to generate a new image or replace the source image. It should be noted that the algorithms are executed in their own threads.
See Also:
  • Field Details

    • serialVersionUID

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

      public static final int INVERSE
      FFT will run in inverse direction, producing spatial domain image
      See Also:
    • FILTER

      public static final int FILTER
      DOCUMENT ME!
      See Also:
    • FORWARD

      public static final int FORWARD
      FFT will run in forward direction, producing frequency domain image
      See Also:
    • LOWPASS

      public static final int LOWPASS
      A lowpass filter will be applied to the source image
      See Also:
    • HIGHPASS

      public static final int HIGHPASS
      A highpass filter will be applied to the source image
      See Also:
    • BANDPASS

      public static final int BANDPASS
      DOCUMENT ME!
      See Also:
    • BANDSTOP

      public static final int BANDSTOP
      DOCUMENT ME!
      See Also:
    • WINDOW

      public static final int WINDOW
      DOCUMENT ME!
      See Also:
    • GAUSSIAN

      public static final int GAUSSIAN
      DOCUMENT ME!
      See Also:
    • BUTTERWORTH

      public static final int BUTTERWORTH
      DOCUMENT ME!
      See Also:
    • GABOR

      public static final int GABOR
      See Also:
    • CHEBYSHEV_TYPE_I

      public static final int CHEBYSHEV_TYPE_I
      See Also:
    • CHEBYSHEV_TYPE_II

      public static final int CHEBYSHEV_TYPE_II
      See Also:
    • ELLIPTIC

      public static final int ELLIPTIC
      See Also:
    • bandPass

      private JRadioButton bandPass
      DOCUMENT ME!
    • bandStop

      private JRadioButton bandStop
      DOCUMENT ME!
    • butterworthFilter

      private JRadioButton butterworthFilter
      DOCUMENT ME!
    • chebyshevIFilter

      private JRadioButton chebyshevIFilter
    • chebyshevIIFilter

      private JRadioButton chebyshevIIFilter
    • ellipticFilter

      private JRadioButton ellipticFilter
    • filterOrder

      private int filterOrder
      DOCUMENT ME!
    • buttonPanel

      private JPanel buttonPanel
      DOCUMENT ME!
    • constructionGroup

      private ButtonGroup constructionGroup
      DOCUMENT ME!
    • constructionMethod

      private int constructionMethod
      DOCUMENT ME!
    • constructionPanel

      private JPanel constructionPanel
      DOCUMENT ME!
    • destinationGroup

      private ButtonGroup destinationGroup
      DOCUMENT ME!
    • destinationPanel

      private JPanel destinationPanel
      DOCUMENT ME!
    • directionGroup

      private ButtonGroup directionGroup
      DOCUMENT ME!
    • directionPanel

      private JPanel directionPanel
      DOCUMENT ME!
    • displayLoc

      private int displayLoc
      DOCUMENT ME!
    • FFTAlgo

      private AlgorithmFFT FFTAlgo
      Float precision default, openCL enabled FFT algorithm
    • FFTAlgo2

      private AlgorithmFFT2 FFTAlgo2
      Double precision, openCL enabled FFT algroithm
    • FrequencyFilterAlgo

      private AlgorithmFrequencyFilter FrequencyFilterAlgo
    • filterPanel

      private JPanel filterPanel
      DOCUMENT ME!
    • filterType

      private int filterType
      DOCUMENT ME!
    • filterTypeGroup

      private ButtonGroup filterTypeGroup
      DOCUMENT ME!
    • forwardFFT

      private JRadioButton forwardFFT
      User selects to indicate forward FFT processing should occur, resulting in frequency image
    • freq1

      private double freq1
      DOCUMENT ME!
    • freq2

      private double freq2
      DOCUMENT ME!
    • frequencyFilter

      private JRadioButton frequencyFilter
      DOCUMENT ME!
    • gaussianFilter

      private JRadioButton gaussianFilter
      DOCUMENT ME!
    • highPass

      private JRadioButton highPass
      DOCUMENT ME!
    • image

      private ModelImage image
      DOCUMENT ME!
    • image25D

      private boolean image25D
      Whether algorithm should run seperately on each slice of a 3D image
    • image25DCheckbox

      private JCheckBox image25DCheckbox
      User can indicate whether the FFT of each slice of a 3D image is computed seperately
    • imageCrop

      private boolean imageCrop
      DOCUMENT ME!
    • imageCropCheckbox

      private JCheckBox imageCropCheckbox
      DOCUMENT ME!
    • inverseFFT

      private JRadioButton inverseFFT
      DOCUMENT ME!
    • kernelDiameter

      private int kernelDiameter
      DOCUMENT ME!
    • labelF1

      private JLabel labelF1
      DOCUMENT ME!
    • labelF2

      private JLabel labelF2
      DOCUMENT ME!
    • labelKernelDiameter

      private JLabel labelKernelDiameter
      DOCUMENT ME!
    • labelOrder

      private JLabel labelOrder
      DOCUMENT ME!
    • labelEpsilon

      private JLabel labelEpsilon
    • labelRs

      private JLabel labelRs
    • logDisplayCheckbox

      private JCheckBox logDisplayCheckbox
      private JPanel optionsPanel;.
    • logMagDisplay

      private boolean logMagDisplay
      DOCUMENT ME!
    • lowPass

      private JRadioButton lowPass
      DOCUMENT ME!
    • mainPanel

      private JPanel mainPanel
      DOCUMENT ME!
    • newImage

      private JRadioButton newImage
      DOCUMENT ME!
    • replaceImage

      private JRadioButton replaceImage
      DOCUMENT ME!
    • resultImage

      private ModelImage resultImage
      DOCUMENT ME!
    • textF1

      private JTextField textF1
      DOCUMENT ME!
    • textF2

      private JTextField textF2
      DOCUMENT ME!
    • textKernelDiameter

      private JTextField textKernelDiameter
      DOCUMENT ME!
    • textOrder

      private JTextField textOrder
      DOCUMENT ME!
    • textEpsilon

      private JTextField textEpsilon
    • textRs

      private JTextField textRs
    • titles

      private String[] titles
      DOCUMENT ME!
    • transformDir

      private int transformDir
      DOCUMENT ME!
    • unequalDim

      private boolean unequalDim
      Whether FFT algorithm can return non-equal x,y dimensions
    • unequalDimCheckbox

      private JCheckBox unequalDimCheckbox
      Indicates whether user wants FFT to return non-equal x,y dimensions
    • windowFilter

      private JRadioButton windowFilter
      DOCUMENT ME!
    • complexInverse

      private boolean complexInverse
      Whether a complex inverse FFT should be computed
    • complexInverseCheckbox

      private JCheckBox complexInverseCheckbox
      Whether the inverse FFT should return a complex image (appropriate when only when source image is complex)
    • useOCLCheckbox

      private JCheckBox useOCLCheckbox
      Indicates whether user wants openCL for processing.
    • useOCL

      private boolean useOCL
      Flag indicating whether to use OpenCL processing.
    • testDouble

      private boolean testDouble
      True when double precision testing should be performed, default is float.
    • epsilon

      private double epsilon
    • rs

      private double rs
    • onlyFrequencyFilter

      private boolean onlyFrequencyFilter
    • fltFmt

      private DecimalFormat fltFmt
  • Constructor Details

    • JDialogFFT

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

      public JDialogFFT(Frame theParentFrame, ModelImage im)
      Creates new FFT dialog.
      Parameters:
      theParentFrame - Parent frame
      im - Source image
  • Method Details

    • actionPerformed

      public void actionPerformed(ActionEvent event)
      Closes dialog box when the OK button is pressed 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 to complete, so that the dialog can be display the result image and/or clean up.
      Specified by:
      algorithmPerformed in interface AlgorithmInterface
      Parameters:
      algorithm - algorithm that caused the event.
    • getResultImage

      public ModelImage getResultImage()
      Accessor that returns the image.
      Returns:
      the result image
    • setfilterOrder

      public void setfilterOrder(int order)
      Accessor that sets the butterworth order.
      Parameters:
      order - Value to set the butterworth order to.
    • setEpsilon

      public void setEpsilon(double epsilon)
      Parameters:
      epsilon - maximum filter ripple in Chebyshev or passband ripple in decibels in Elliptic
    • setRs

      public void setRs(double rs)
      Parameters:
      rs - stop band down in decibels in ellipticFilter
    • setDiameter

      public void setDiameter(int diameter)
      Accessor that sets the kernel diameter.
      Parameters:
      diameter - Value to set the kernel diameter to.
    • setDisplayLocNew

      public void setDisplayLocNew()
      Accessor that sets the display loc variable to new, so that a new image is created once the algorithm completes.
    • setDisplayLocReplace

      public void setDisplayLocReplace()
      Accessor that sets the display loc variable to replace, so the current image is replaced once the algorithm completes.
    • setFilterType

      public void setFilterType(int type)
      Accessor that sets the filter type (LOWPASS, HIGHPASS, BANDPASS, BANDSTOP).
      Parameters:
      type - Value to set the filter type to.
    • setFreq1

      public void setFreq1(double scale)
      Accessor that sets the frequency 1 variable.
      Parameters:
      scale - Value to set frequency 1 to.
    • setFreq2

      public void setFreq2(double scale)
      Accessor that sets the frequency 2 variable.
      Parameters:
      scale - Value to set frequency 2 to.
    • setImage25D

      public void setImage25D(boolean image25D)
      Accessor that sets image25D for single slice processing.
      Parameters:
      image25D - DOCUMENT ME!
    • setUseOCL

      public void setUseOCL(boolean useOCL)
      Accessor that sets whether to use OpenCL processing (may still not be set if it is not supported on the system).
      Parameters:
      useOCL - Whether to try to use OpenCL processing.
    • setImageCrop

      public void setImageCrop(boolean flag)
      Accessor that sets the image crop flag.
      Parameters:
      flag - true indicates image crop, false otherwise.
    • setLogMagDisplay

      public void setLogMagDisplay(boolean logMagDisplay)
      Accessor that turns log mag display on or off.
      Parameters:
      logMagDisplay - DOCUMENT ME!
    • setMethod

      public void setMethod(int method)
      Accessor that sets the construction method (WINDOW, GAUSSIAN, BUTTERWORTH).
      Parameters:
      method - Value to set the construction method to.
    • setTransformDir

      public void setTransformDir(int transformDir)
      Accessor that sets the transform direction.
      Parameters:
      transformDir - DOCUMENT ME!
    • setUnequalDim

      public void setUnequalDim(boolean unequalDim)
      Accessor that sets whether or not the picture dimension can be unequal.
      Parameters:
      unequalDim - DOCUMENT ME!
    • setComplexInverse

      public void setComplexInverse(boolean complexInverse)
    • callAlgorithmFrequencyFilter

      protected void callAlgorithmFrequencyFilter()
      Once all the necessary variables are set, call the Frequency Filter algorithm based on what type of image this is and whether or not there is a separate destination image.
    • callAlgorithm

      protected void callAlgorithm()
      Once all the necessary variables are set, call the FFT algorithm based on what type of image this is and whether or not there is a separate destination image.
      Specified by:
      callAlgorithm in class JDialogScriptableBase
    • callAlgorithm2

      protected void callAlgorithm2()
      Once all the necessary variables are set, call the FFT algorithm based on what type of image this is and whether or not there is a separate destination image.
    • 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.
    • init

      private void init()
      Initializes GUI dialog.
    • setVariables

      private boolean setVariables()
      Use the GUI results to set up the variables needed to run the algorithm.
      Returns:
      true if parameters set successfully, false otherwise.
    • 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.