Class JDialogHoughEllipse

  • All Implemented Interfaces:
    AlgorithmInterface, 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.RootPaneContainer, javax.swing.WindowConstants

    public class JDialogHoughEllipse
    extends JDialogBase
    implements AlgorithmInterface, java.awt.event.ItemListener, java.awt.event.WindowListener
    Dialog to create Hough transform with p, q, r1, r2, and theta output for ellipse detection in binary image, where p is the x coordinate of the ellipse center, q is the y coordinate of the ellipse center, r1 is the semimajor axis (or major radius), r2 is the semiminor axis (or minor radius), and theta is the angle of the major axis with the x axis.
    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
    • 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.
      private void callAlgorithm()
      DOCUMENT ME!
      private void init()
      Initializes GUI components and displays dialog.
      void itemStateChanged​(java.awt.event.ItemEvent event)
      itemStateChanged.
      private boolean setVariables()
      Use the GUI results to set up the variables needed to run the algorithm.
      void windowClosing​(java.awt.event.WindowEvent event)
      Disposes of error dialog, then frame.
      • 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.WindowListener

        windowActivated, windowClosed, windowDeactivated, windowDeiconified, windowIconified, windowOpened
    • Field Detail

      • serialVersionUID

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

        private ModelImage resultImage
        DOCUMENT ME!
      • minCoverage

        private double minCoverage
        Minimum percentage of the perimiter of a found ellipse that must be covered by points for it to be valid.
      • minCoverageText

        private javax.swing.JTextField minCoverageText
        DOCUMENT ME!
      • sidePointsForTangent

        private int sidePointsForTangent
        Maximum number of points to take from each side of a point on a curve in determining a tangent
      • sideText

        private javax.swing.JTextField sideText
      • pixelWidthText

        private javax.swing.JTextField pixelWidthText
      • maxPixelBinWidth

        private double maxPixelBinWidth
        For xCenter, yCenter, r1, and r2 must bin width
        • degreesWidthText

          private javax.swing.JTextField degreesWidthText
        • maxDegreesBinWidth

          private double maxDegreesBinWidth
          For theta must have bin width
          • numEllipses

            private int numEllipses
            number of ellipses to be found
          • numEllipsesText

            private javax.swing.JTextField numEllipsesText
          • minPointDistance

            private double minPointDistance
            Smallest allowable distance between 2 of 3 picked points
          • minPointText

            private javax.swing.JTextField minPointText
          • maxPointDistance

            private double maxPointDistance
            Largest allowable distance between 2 of 3 picked points
          • maxPointText

            private javax.swing.JTextField maxPointText
          • pointSetsRequired

            private int pointSetsRequired
            Number of point triplets required before each ellipse find is performed
          • pointSetsText

            private javax.swing.JTextField pointSetsText
          • countThreshold

            private int countThreshold
            Number of counts required to find an ellipse
          • countText

            private javax.swing.JTextField countText
          • ellipseRangeTolerance

            private double ellipseRangeTolerance
            Maximum percent by which perimiter pixels can deviate from the ellipse equation
          • toleranceText

            private javax.swing.JTextField toleranceText
          • maxCyclesText

            private javax.swing.JTextField maxCyclesText
          • maxEllipseFindCycles

            private int maxEllipseFindCycles
            Maximum number of pointSetsRequired triplet point acqusitions that is allowed to occur
          • maxBufferText

            private javax.swing.JTextField maxBufferText
          • maxBufferSize

            private int maxBufferSize
            The maximum Hough transform size in megabytes - default is currently 256
          • Constructor Detail

            • JDialogHoughEllipse

              public JDialogHoughEllipse​(ModelImage image)
              Creates a new JDialogHoughEllipse object.
              Parameters:
              image - DOCUMENT ME!
            • JDialogHoughEllipse

              public JDialogHoughEllipse​(java.awt.Frame theParentFrame,
                                         ModelImage im)
              Creates new 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 algorithm 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.
            • itemStateChanged

              public void itemStateChanged​(java.awt.event.ItemEvent event)
              itemStateChanged.
              Specified by:
              itemStateChanged in interface java.awt.event.ItemListener
              Overrides:
              itemStateChanged in class JDialogBase
              Parameters:
              event - DOCUMENT ME!
            • windowClosing

              public void windowClosing​(java.awt.event.WindowEvent event)
              Disposes of error dialog, then frame. Sets cancelled to true.
              Specified by:
              windowClosing in interface java.awt.event.WindowListener
              Overrides:
              windowClosing in class JDialogBase
              Parameters:
              event - DOCUMENT ME!
            • callAlgorithm

              private void callAlgorithm()
              DOCUMENT ME!
            • init

              private void init()
              Initializes GUI components and displays 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.