br.usp.ime.klava.segmentit.gui
Class SegmentViaHierarchy

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by br.usp.ime.klava.segmentit.gui.SegmentViaHierarchy
All Implemented Interfaces:
ToolContainer, java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class SegmentViaHierarchy
extends javax.swing.JDialog
implements javax.swing.event.ChangeListener, java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseWheelListener, java.awt.event.MouseMotionListener, ToolContainer, java.awt.event.WindowListener

Used to store an image to be segmented using hierarchies of partitions.

Extensions of this class can be used in SegmentIt by setting an implementation of SegmentViaHierarchyBuilderIF in SegmentationDocument.setSegmentViaHierarchyBuilder(SegmentViaHierarchyBuilderIF).

Author:
Bruno Klava
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph, java.awt.image.BufferedImage inputImage, java.awt.image.BufferedImage markersImage)
          Constructor for the GUI to be used for hierarchical segmentation.
SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph, java.awt.image.BufferedImage inputImage, java.awt.image.BufferedImage markersImage, int[] labels, Pixel[][] initialPartition, java.awt.Point selectedPixel)
          Constructor for the GUI to be used for hierarchical segmentation.
SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph, java.awt.image.BufferedImage inputImage, java.awt.image.BufferedImage markersImage, int[] labels, java.awt.Point selectedPixel)
          Constructor for the GUI to be used for hierarchical segmentation.
SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph, java.awt.image.BufferedImage inputImage, java.awt.image.BufferedImage markersImage, Pixel[][] initialPartition, java.awt.Point selectedPixel)
          Constructor for the GUI to be used for hierarchical segmentation.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Rebuilds the hierarchy if a criterion was selected.
 void dispose()
           
static boolean isActiveNow()
          Returns if the hierarchical segmentation is being used.
 void mouseClicked(java.awt.event.MouseEvent event)
          Executes some actions fired by multiples mouse clicks on tools: Erase all markers; reset zoom.
 void mouseDragged(java.awt.event.MouseEvent event)
          Executes some actions depending on the selected tool and the mouse button utilized.
 void mouseEntered(java.awt.event.MouseEvent e)
          Does nothing.
 void mouseExited(java.awt.event.MouseEvent e)
          Does nothing.
 void mouseMoved(java.awt.event.MouseEvent event)
          Does nothing.
 void mousePressed(java.awt.event.MouseEvent event)
          Executes some actions depending on the selected tool and the mouse button utilized.
 void mouseReleased(java.awt.event.MouseEvent e)
          Executes some actions depending on the selected tool and the mouse button utilized.
 void mouseWheelMoved(java.awt.event.MouseWheelEvent event)
          Performs a merge or a refine operation depending on the wheel rotation.
static void redo()
          Redoes an action, if possible.
 void setSelectedTool(Tool tool)
          Sets the selected Tool.
 void stateChanged(javax.swing.event.ChangeEvent arg0)
          Refreshes the hierarchy or the GUI if the threshold or the opacity sliders were used.
static void undo()
          Undoes an action, if possible.
 void windowActivated(java.awt.event.WindowEvent e)
          Does nothing.
 void windowClosed(java.awt.event.WindowEvent e)
          Does nothing.
 void windowClosing(java.awt.event.WindowEvent e)
          Does nothing.
 void windowDeactivated(java.awt.event.WindowEvent e)
          Does nothing.
 void windowDeiconified(java.awt.event.WindowEvent e)
          Does nothing.
 void windowIconified(java.awt.event.WindowEvent e)
          Does nothing.
 void windowOpened(java.awt.event.WindowEvent e)
          Does nothing.
 
Methods inherited from class javax.swing.JDialog
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, paint, paintComponents, preferredSize, print, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SegmentViaHierarchy

public SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph,
                           java.awt.image.BufferedImage inputImage,
                           java.awt.image.BufferedImage markersImage)
Constructor for the GUI to be used for hierarchical segmentation.

Parameters:
graph - a graph of primitive catchment basins from which the hierarchy will be built
inputImage - the original image (for visualization)
markersImage - the markers image used to obtain the initialPartition

SegmentViaHierarchy

public SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph,
                           java.awt.image.BufferedImage inputImage,
                           java.awt.image.BufferedImage markersImage,
                           int[] labels,
                           java.awt.Point selectedPixel)
Constructor for the GUI to be used for hierarchical segmentation. The hierarchy will contain the partition derived from labels.

Parameters:
graph - a graph of primitive catchment basins from which the hierarchy will be built
inputImage - the original image (for visualization)
markersImage - the markers image used to obtain the initialPartition
labels - a labeling for the vertices of graph that corresponds to an initial partition
selectedPixel - the coordinates of a pixel of the selected region to be segmented via hierarchy

SegmentViaHierarchy

public SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph,
                           java.awt.image.BufferedImage inputImage,
                           java.awt.image.BufferedImage markersImage,
                           Pixel[][] initialPartition,
                           java.awt.Point selectedPixel)
Constructor for the GUI to be used for hierarchical segmentation. The hierarchy will contain the partition at primitive catchment basins precision most close to the initialPartition.

Parameters:
graph - a graph of primitive catchment basins from which the hierarchy will be built
inputImage - the original image (for visualization)
markersImage - the markers image used to obtain the initialPartition
initialPartition - an initial partition
selectedPixel - the coordinates of a pixel of the selected region to be segmented via hierarchy

SegmentViaHierarchy

public SegmentViaHierarchy(PrimitiveCatchmentBasinsGraph graph,
                           java.awt.image.BufferedImage inputImage,
                           java.awt.image.BufferedImage markersImage,
                           int[] labels,
                           Pixel[][] initialPartition,
                           java.awt.Point selectedPixel)
Constructor for the GUI to be used for hierarchical segmentation. The hierarchy will contain the partition at primitive catchment basins precision most close to the initialPartition, if it is not null, or will contain the partition derived from labels, if it is not null. Not that either initialPartition or labels must be null.

Parameters:
graph - a graph of primitive catchment basins from which the hierarchy will be built
inputImage - the original image (for visualization)
markersImage - the markers image used to obtain the initialPartition
labels - a labeling for the vertices of graph that corresponds to an initial partition
initialPartition - an initial partition
selectedPixel - the coordinates of a pixel of the selected region to be segmented via hierarchy
Method Detail

dispose

public void dispose()
Overrides:
dispose in class java.awt.Window

isActiveNow

public static boolean isActiveNow()
Returns if the hierarchical segmentation is being used.

Returns:
true if the hierarchical segmentation is being used

undo

public static void undo()
Undoes an action, if possible.


redo

public static void redo()
Redoes an action, if possible.


stateChanged

public void stateChanged(javax.swing.event.ChangeEvent arg0)
Refreshes the hierarchy or the GUI if the threshold or the opacity sliders were used.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Rebuilds the hierarchy if a criterion was selected.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent event)
Executes some actions fired by multiples mouse clicks on tools:

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Does nothing.

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Does nothing.

Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent event)
Executes some actions depending on the selected tool and the mouse button utilized.

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Executes some actions depending on the selected tool and the mouse button utilized.

Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseWheelMoved

public void mouseWheelMoved(java.awt.event.MouseWheelEvent event)
Performs a merge or a refine operation depending on the wheel rotation.

Specified by:
mouseWheelMoved in interface java.awt.event.MouseWheelListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent event)
Executes some actions depending on the selected tool and the mouse button utilized.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent event)
Does nothing.

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

windowActivated

public void windowActivated(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowActivated in interface java.awt.event.WindowListener

windowClosed

public void windowClosed(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowClosed in interface java.awt.event.WindowListener

windowClosing

public void windowClosing(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowClosing in interface java.awt.event.WindowListener

windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowDeactivated in interface java.awt.event.WindowListener

windowDeiconified

public void windowDeiconified(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowDeiconified in interface java.awt.event.WindowListener

windowIconified

public void windowIconified(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowIconified in interface java.awt.event.WindowListener

windowOpened

public void windowOpened(java.awt.event.WindowEvent e)
Does nothing.

Specified by:
windowOpened in interface java.awt.event.WindowListener

setSelectedTool

public void setSelectedTool(Tool tool)
Description copied from interface: ToolContainer
Sets the selected Tool.

Specified by:
setSelectedTool in interface ToolContainer
Parameters:
tool - the Tool to be used