Class JDialogMSFuzzyCMeans

  • All Implemented Interfaces:
    AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ListSelectionListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class JDialogMSFuzzyCMeans
    extends JDialogScriptableBase
    implements AlgorithmInterface, javax.swing.event.ListSelectionListener
    Dialog to get user input, then call the algorithm.
    See Also:
    Serialized Form
    • 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
      JDialogMSFuzzyCMeans()
      Empty constructor needed for dynamic instantiation (used during scripting).
      JDialogMSFuzzyCMeans​(java.awt.Frame theParentFrame, ModelImage im)
      Creates a new JDialogMSFuzzyCMeans object.
    • 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 Fuzzy C Means algorithm based on what type of image this is and whether or not there is a separate destination image.
      private boolean checkImage​(ModelImage testImage)
      Checks the color and dimensionality of the new image vs. the original source image.
      protected void doPostAlgorithmActions()
      Store the result image in the script runner's image table now that the action execution is finished.
      private boolean getCentroidsThreshold()
      Gets the minimum and maximum of each image and initializes the centroids dialog appropriately.
      private javax.swing.filechooser.FileFilter getFileFilter​(javax.swing.JFileChooser chooser, int index)
      A private helper function to get the current used FileFilter from JFileChooser.
      ModelImage[] getResultImage()
      Accessor that returns the image.
      private void init()
      Sets up the GUI (panels, buttons, etc) and displays it on the screen.
      private ModelImage open()
      Open an image based on the suffix of the file.
      void setCentroids​(float[] centroids)
      Accessor that sets the centroids.
      void setCrop​(boolean flag)
      Accessor that sets the crop background flag.
      void setEndTol​(float scale)
      Accessor that sets the end tol.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      void setMaxIter​(int max)
      Accessor that sets the max iterations.
      void setNClasses​(int classes)
      Accessor that sets the number of classes.
      void setQ​(float scale)
      Accessor that sets the q variable.
      void setRegionFlag​(boolean flag)
      Accessor that sets the region flag.
      void setSegmentationType​(int type)
      Accessor that sets the segmentation type (BOTH_FUZZY_HARD, FUZZY, or HARD).
      void setSourceImage​(ModelImage[] images)
      Accessor that sets the array of source images.
      void setThreshold​(float[] threshold)
      Accessor that sets the threshold.
      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.
      void valueChanged​(javax.swing.event.ListSelectionEvent evt)
      Sets the remove index based on the selected index in the list.
      • 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
    • Field Detail

      • serialVersionUID

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

        private float[] centroids
        DOCUMENT ME!
      • changeRemoveIndex

        private boolean changeRemoveIndex
        DOCUMENT ME!
      • chooserButton

        private javax.swing.JButton chooserButton
        DOCUMENT ME!
      • cropBackground

        private boolean cropBackground
        DOCUMENT ME!
      • cropCheckbox

        private javax.swing.JCheckBox cropCheckbox
        DOCUMENT ME!
      • destExtents

        private int[] destExtents
        DOCUMENT ME!
      • endTol

        private float endTol
        DOCUMENT ME!
      • fuzzyOnly

        private javax.swing.JRadioButton fuzzyOnly
        DOCUMENT ME!
      • hardFuzzyBoth

        private javax.swing.JRadioButton hardFuzzyBoth
        DOCUMENT ME!
      • hardOnly

        private javax.swing.JRadioButton hardOnly
        DOCUMENT ME!
      • imageList

        private javax.swing.JList imageList
        DOCUMENT ME!
      • imagePanel

        private javax.swing.JPanel imagePanel
        DOCUMENT ME!
      • imageVOIGroup

        private javax.swing.ButtonGroup imageVOIGroup
        DOCUMENT ME!
      • imageVOIPanel

        private javax.swing.JPanel imageVOIPanel
        DOCUMENT ME!
      • labelEndTol

        private javax.swing.JLabel labelEndTol
        DOCUMENT ME!
      • labelExpo

        private javax.swing.JLabel labelExpo
        DOCUMENT ME!
      • labelMaxIter

        private javax.swing.JLabel labelMaxIter
        DOCUMENT ME!
      • labelNClasses

        private javax.swing.JLabel labelNClasses
        DOCUMENT ME!
      • maxIter

        private int maxIter
        DOCUMENT ME!
      • model

        private javax.swing.DefaultListModel model
        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 javax.swing.JPanel paramPanel
        DOCUMENT ME!
      • presentNumber

        private int presentNumber
        DOCUMENT ME!
      • q

        private float q
        DOCUMENT ME!
      • regionFlag

        private boolean regionFlag
        DOCUMENT ME!
      • removeButton

        private javax.swing.JButton removeButton
        DOCUMENT ME!
      • removeIndex

        private int removeIndex
        DOCUMENT ME!
      • resultImage

        private ModelImage[] resultImage
        DOCUMENT ME!
      • resultNumber

        private int resultNumber
        DOCUMENT ME!
      • segmentation

        private int segmentation
        DOCUMENT ME!
      • segmentationGroup

        private javax.swing.ButtonGroup segmentationGroup
        DOCUMENT ME!
      • segmentationPanel

        private javax.swing.JPanel segmentationPanel
        DOCUMENT ME!
      • srcImage

        private ModelImage[] srcImage
        DOCUMENT ME!
      • srcNumber

        private int srcNumber
        DOCUMENT ME!
      • tempImage

        private ModelImage[] tempImage
        DOCUMENT ME!
      • textEndTol

        private javax.swing.JTextField textEndTol
        DOCUMENT ME!
      • textExpo

        private javax.swing.JTextField textExpo
        DOCUMENT ME!
      • textMaxIter

        private javax.swing.JTextField textMaxIter
        DOCUMENT ME!
      • textNClasses

        private javax.swing.JTextField textNClasses
        DOCUMENT ME!
      • threshold

        private float[] threshold
        DOCUMENT ME!
      • twoJacobiIter

        private int twoJacobiIter
        DOCUMENT ME!
      • twoSmooth

        private float twoSmooth
        DOCUMENT ME!
      • VOIRegions

        private javax.swing.JRadioButton VOIRegions
        DOCUMENT ME!
      • wholeImage

        private javax.swing.JRadioButton wholeImage
        DOCUMENT ME!
    • Constructor Detail

      • JDialogMSFuzzyCMeans

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

        public JDialogMSFuzzyCMeans​(java.awt.Frame theParentFrame,
                                    ModelImage im)
        Creates a new JDialogMSFuzzyCMeans object.
        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.
      • 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.
      • setSourceImage

        public void setSourceImage​(ModelImage[] images)
        Accessor that sets the array of source images.
        Parameters:
        images - new source images.
      • setThreshold

        public void setThreshold​(float[] threshold)
        Accessor that sets the threshold.
        Parameters:
        threshold - Value to set threshold to.
      • valueChanged

        public void valueChanged​(javax.swing.event.ListSelectionEvent evt)
        Sets the remove index based on the selected index in the list.
        Specified by:
        valueChanged in interface javax.swing.event.ListSelectionListener
        Parameters:
        evt - Event that caused this method to fire.
      • 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
      • checkImage

        private boolean checkImage​(ModelImage testImage)
        Checks the color and dimensionality of the new image vs. the original source image. All new images should have the same color modality as the source and be of the same dimensions.
        Parameters:
        testImage - DOCUMENT ME!
        Returns:
        Flag indicating if the image checks out.
      • getCentroidsThreshold

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

        private javax.swing.filechooser.FileFilter getFileFilter​(javax.swing.JFileChooser chooser,
                                                                 int index)
        A private helper function to get the current used FileFilter from JFileChooser.
        Parameters:
        chooser - DOCUMENT ME!
        index - the index of the choosable file filters.
        Returns:
        the current used file filter.
      • init

        private void init()
        Sets up the GUI (panels, buttons, etc) and displays it on the screen.
      • open

        private ModelImage open()
        Open an image based on the suffix of the file.
        Returns:
        The image.
      • 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.