Class JDialogFFT

    • Nested Class Summary

      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      JDialogFFT()
      Empty constructor needed for dynamic instantiation (used during scripting).
      JDialogFFT​(java.awt.Frame theParentFrame, ModelImage im)
      Creates new FFT dialog.
    • Method Summary

      All 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 and calls the algorithm.
      void algorithmPerformed​(AlgorithmBase algorithm)
      This method is required if the AlgorithmPerformed interface is implemented.
      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.
      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.
      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.
      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.
      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).
      ModelImage getResultImage()
      Accessor that returns the image.
      private void init()
      Initializes GUI dialog.
      boolean isActionComplete()
      Returns whether the action has successfully completed its execution.
      void setComplexInverse​(boolean complexInverse)  
      void setDiameter​(int diameter)
      Accessor that sets the kernel diameter.
      void setDisplayLocNew()
      Accessor that sets the display loc variable to new, so that a new image is created once the algorithm completes.
      void setDisplayLocReplace()
      Accessor that sets the display loc variable to replace, so the current image is replaced once the algorithm completes.
      void setEpsilon​(double epsilon)  
      void setfilterOrder​(int order)
      Accessor that sets the butterworth order.
      void setFilterType​(int type)
      Accessor that sets the filter type (LOWPASS, HIGHPASS, BANDPASS, BANDSTOP).
      void setFreq1​(double scale)
      Accessor that sets the frequency 1 variable.
      void setFreq2​(double scale)
      Accessor that sets the frequency 2 variable.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      void setImage25D​(boolean image25D)
      Accessor that sets image25D for single slice processing.
      void setImageCrop​(boolean flag)
      Accessor that sets the image crop flag.
      void setLogMagDisplay​(boolean logMagDisplay)
      Accessor that turns log mag display on or off.
      void setMethod​(int method)
      Accessor that sets the construction method (WINDOW, GAUSSIAN, BUTTERWORTH).
      void setRs​(double rs)  
      void setTransformDir​(int transformDir)
      Accessor that sets the transform direction.
      void setUnequalDim​(boolean unequalDim)
      Accessor that sets whether or not the picture dimension can be unequal.
      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).
      private boolean setVariables()
      Use the GUI results to set up the variables needed to run the algorithm.
      protected void storeParamsFromGUI()
      Record the parameters just used to run this algorithm in a script.
      • 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
      • Methods inherited from interface java.awt.event.ItemListener

        itemStateChanged
    • Field Detail

      • serialVersionUID

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

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

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

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

        public static final int HIGHPASS
        A highpass filter will be applied to the source image
        See Also:
        Constant Field Values
      • bandPass

        private javax.swing.JRadioButton bandPass
        DOCUMENT ME!
      • bandStop

        private javax.swing.JRadioButton bandStop
        DOCUMENT ME!
      • butterworthFilter

        private javax.swing.JRadioButton butterworthFilter
        DOCUMENT ME!
      • chebyshevIFilter

        private javax.swing.JRadioButton chebyshevIFilter
      • chebyshevIIFilter

        private javax.swing.JRadioButton chebyshevIIFilter
      • ellipticFilter

        private javax.swing.JRadioButton ellipticFilter
      • filterOrder

        private int filterOrder
        DOCUMENT ME!
      • buttonPanel

        private javax.swing.JPanel buttonPanel
        DOCUMENT ME!
      • constructionGroup

        private javax.swing.ButtonGroup constructionGroup
        DOCUMENT ME!
      • constructionMethod

        private int constructionMethod
        DOCUMENT ME!
      • constructionPanel

        private javax.swing.JPanel constructionPanel
        DOCUMENT ME!
      • destinationGroup

        private javax.swing.ButtonGroup destinationGroup
        DOCUMENT ME!
      • destinationPanel

        private javax.swing.JPanel destinationPanel
        DOCUMENT ME!
      • directionGroup

        private javax.swing.ButtonGroup directionGroup
        DOCUMENT ME!
      • directionPanel

        private javax.swing.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
      • filterPanel

        private javax.swing.JPanel filterPanel
        DOCUMENT ME!
      • filterType

        private int filterType
        DOCUMENT ME!
      • filterTypeGroup

        private javax.swing.ButtonGroup filterTypeGroup
        DOCUMENT ME!
      • forwardFFT

        private javax.swing.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 javax.swing.JRadioButton frequencyFilter
        DOCUMENT ME!
      • gaussianFilter

        private javax.swing.JRadioButton gaussianFilter
        DOCUMENT ME!
      • highPass

        private javax.swing.JRadioButton highPass
        DOCUMENT ME!
      • image25D

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

        private javax.swing.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 javax.swing.JCheckBox imageCropCheckbox
        DOCUMENT ME!
      • inverseFFT

        private javax.swing.JRadioButton inverseFFT
        DOCUMENT ME!
      • kernelDiameter

        private int kernelDiameter
        DOCUMENT ME!
      • labelF1

        private javax.swing.JLabel labelF1
        DOCUMENT ME!
      • labelF2

        private javax.swing.JLabel labelF2
        DOCUMENT ME!
      • labelKernelDiameter

        private javax.swing.JLabel labelKernelDiameter
        DOCUMENT ME!
      • labelOrder

        private javax.swing.JLabel labelOrder
        DOCUMENT ME!
      • labelEpsilon

        private javax.swing.JLabel labelEpsilon
      • labelRs

        private javax.swing.JLabel labelRs
      • logDisplayCheckbox

        private javax.swing.JCheckBox logDisplayCheckbox
        private JPanel optionsPanel;.
      • logMagDisplay

        private boolean logMagDisplay
        DOCUMENT ME!
      • lowPass

        private javax.swing.JRadioButton lowPass
        DOCUMENT ME!
      • mainPanel

        private javax.swing.JPanel mainPanel
        DOCUMENT ME!
      • newImage

        private javax.swing.JRadioButton newImage
        DOCUMENT ME!
      • replaceImage

        private javax.swing.JRadioButton replaceImage
        DOCUMENT ME!
      • resultImage

        private ModelImage resultImage
        DOCUMENT ME!
      • textF1

        private javax.swing.JTextField textF1
        DOCUMENT ME!
      • textF2

        private javax.swing.JTextField textF2
        DOCUMENT ME!
      • textKernelDiameter

        private javax.swing.JTextField textKernelDiameter
        DOCUMENT ME!
      • textOrder

        private javax.swing.JTextField textOrder
        DOCUMENT ME!
      • textEpsilon

        private javax.swing.JTextField textEpsilon
      • textRs

        private javax.swing.JTextField textRs
      • titles

        private java.lang.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 javax.swing.JCheckBox unequalDimCheckbox
        Indicates whether user wants FFT to return non-equal x,y dimensions
      • windowFilter

        private javax.swing.JRadioButton windowFilter
        DOCUMENT ME!
      • complexInverse

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

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

        private javax.swing.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 java.text.DecimalFormat fltFmt
    • Constructor Detail

      • JDialogFFT

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

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

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        Closes dialog box when the OK button is pressed 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 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
      • 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 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.