Class JDialogFuzzyCMeans

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

public class JDialogFuzzyCMeans extends JDialogScriptableBase implements AlgorithmInterface, ActionDiscovery, ScriptableActionInterface
Dialog to get user input, then call the algorithm.
See Also:
  • Field Details

    • serialVersionUID

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

      public static final int BOTH_FUZZY_HARD
      DOCUMENT ME!
      See Also:
    • FUZZY_ONLY

      public static final int FUZZY_ONLY
      DOCUMENT ME!
      See Also:
    • HARD_ONLY

      public static final int HARD_ONLY
      DOCUMENT ME!
      See Also:
    • centroids

      private float[] centroids
      DOCUMENT ME!
    • cropBackground

      private boolean cropBackground
      DOCUMENT ME!
    • cropCheckbox

      private JCheckBox cropCheckbox
      DOCUMENT ME!
    • destExtents

      private int[] destExtents
      DOCUMENT ME!
    • endTol

      private float endTol
      DOCUMENT ME!
    • fcmAlgo

      private AlgorithmFuzzyCMeans fcmAlgo
      DOCUMENT ME!
    • fuzzyOnly

      private JRadioButton fuzzyOnly
      DOCUMENT ME!
    • hardFuzzyBoth

      private JRadioButton hardFuzzyBoth
      DOCUMENT ME!
    • hardOnly

      private JRadioButton hardOnly
      DOCUMENT ME!
    • image

      private ModelImage image
      DOCUMENT ME!
    • imageVOIGroup

      private ButtonGroup imageVOIGroup
      DOCUMENT ME!
    • imageVOIPanel

      private JPanel imageVOIPanel
      DOCUMENT ME!
    • labelEndTol

      private JLabel labelEndTol
      DOCUMENT ME!
    • labelExpo

      private JLabel labelExpo
      DOCUMENT ME!
    • labelMaxIter

      private JLabel labelMaxIter
      DOCUMENT ME!
    • labelNClasses

      private JLabel labelNClasses
      DOCUMENT ME!
    • labelSignal

      private JLabel labelSignal
      DOCUMENT ME!
    • maxIter

      private int maxIter
      DOCUMENT ME!
    • nClasses

      private int nClasses
      DOCUMENT ME!
    • nPyramid

      private int nPyramid
      DOCUMENT ME!
    • oneJacobiIter

      private int oneJacobiIter
      DOCUMENT ME!
    • oneSmooth

      private float oneSmooth
      DOCUMENT ME!
    • outputGainField

      private boolean outputGainField
      private JCheckBox calcGainFieldCheckbox;.
    • paramPanel

      private JPanel paramPanel
      DOCUMENT ME!
    • presentNumber

      private int presentNumber
      DOCUMENT ME!
    • q

      private float q
      DOCUMENT ME!
    • regionFlag

      private boolean regionFlag
      DOCUMENT ME!
    • resultImage

      private ModelImage[] resultImage
      DOCUMENT ME!
    • resultNumber

      private int resultNumber
      DOCUMENT ME!
    • segmentation

      private int segmentation
      DOCUMENT ME!
    • segmentationGroup

      private ButtonGroup segmentationGroup
      DOCUMENT ME!
    • segmentationPanel

      private JPanel segmentationPanel
      DOCUMENT ME!
    • textEndTol

      private JTextField textEndTol
      DOCUMENT ME!
    • textExpo

      private JTextField textExpo
      DOCUMENT ME!
    • textMaxIter

      private JTextField textMaxIter
      DOCUMENT ME!
    • textNClasses

      private JTextField textNClasses
      DOCUMENT ME!
    • textSignal

      private JTextField textSignal
      DOCUMENT ME!
    • threshold

      private float threshold
      DOCUMENT ME!
    • twoJacobiIter

      private int twoJacobiIter
      DOCUMENT ME!
    • twoSmooth

      private float twoSmooth
      DOCUMENT ME!
    • VOIRegions

      private JRadioButton VOIRegions
      DOCUMENT ME!
    • wholeImage

      private JRadioButton wholeImage
      DOCUMENT ME!
  • Constructor Details

    • JDialogFuzzyCMeans

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

      public JDialogFuzzyCMeans(Frame theParentFrame, ModelImage im)
      Creates a new JDialogFuzzyCMeans object.
      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.
    • setCentroids

      public void setCentroids(float[] centroids)
      Accessor that sets the centroids.
      Parameters:
      centroids - Value to set centroids to.
    • setCrop

      public void setCrop(boolean flag)
      Accessor that sets the crop background flag.
      Parameters:
      flag - true indicates crop the background, false otherwise.
    • setEndTol

      public void setEndTol(float scale)
      Accessor that sets the end tol.
      Parameters:
      scale - Value to set end tol to.
    • setMaxIter

      public void setMaxIter(int max)
      Accessor that sets the max iterations.
      Parameters:
      max - The max iterations
    • setNClasses

      public void setNClasses(int classes)
      Accessor that sets the number of classes.
      Parameters:
      classes - The number of classes.
    • setQ

      public void setQ(float scale)
      Accessor that sets the q variable.
      Parameters:
      scale - Value to set q variable to.
    • setRegionFlag

      public void setRegionFlag(boolean flag)
      Accessor that sets the region flag.
      Parameters:
      flag - true indicates the whole image is blurred, false indicates a region.
    • setSegmentationType

      public void setSegmentationType(int type)
      Accessor that sets the segmentation type (BOTH_FUZZY_HARD, FUZZY, or HARD).
      Parameters:
      type - The segmentation type.
    • setThreshold

      public void setThreshold(float scale)
      Accessor that sets the threshold.
      Parameters:
      scale - Value to set the threshold to.
    • callAlgorithm

      protected void callAlgorithm()
      Once all the necessary variables are set, call the Fuzzy C Means 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
    • 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.
    • getDefaultCentroids

      public static float[] getDefaultCentroids(ModelImage image, int nClasses, boolean regionFlag, BitSet regionMask, boolean cropBackground, float threshold)
    • getCentroids

      private boolean getCentroids()
      Gets the minimum and maximum of each image and initializes the centroids dialog appropriately.
      Returns:
      Flag indicating a successful get.
    • init

      private void init()
      Sets up the GUI (panels, buttons, etc) and displays it on the screen.
    • 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.