Class JDialogPowerPaint

All Implemented Interfaces:
DialogDefaultsInterface, ActionListener, FocusListener, ItemListener, KeyListener, MouseListener, MouseWheelListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener, RootPaneContainer, WindowConstants

public class JDialogPowerPaint extends JDialogBase implements MouseListener, MouseWheelListener, KeyListener, ChangeListener
Dialog box for the paint power tools: morphology operations, object delete, etc.
Version:
May 2005
Author:
Pierre-Louis Bazin
See Also:
  • Field Details

    • serialVersionUID

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

      private static final int MaxObject
      DOCUMENT ME!
      See Also:
    • NONE

      private static int NONE
      DOCUMENT ME!
    • BACKGROUND

      private static int BACKGROUND
      DOCUMENT ME!
    • ALLBACKGROUNDS

      private static int ALLBACKGROUNDS
      DOCUMENT ME!
    • REMOVE

      private static int REMOVE
      DOCUMENT ME!
    • REMOVEALL

      private static int REMOVEALL
      DOCUMENT ME!
    • GROWREGION

      private static int GROWREGION
      DOCUMENT ME!
    • XY

      private static int XY
      DOCUMENT ME!
    • XZ

      private static int XZ
      DOCUMENT ME!
    • ZY

      private static int ZY
      DOCUMENT ME!
    • delay

      private static int delay
      autosave elements.
    • backgroundDim

      private int backgroundDim
      DOCUMENT ME!
    • backgroundsDim

      private int backgroundsDim
      DOCUMENT ME!
    • botPanel

      private JPanel botPanel
      DOCUMENT ME!
    • buttonDilate

      private JButton buttonDilate
      DOCUMENT ME!
    • buttonErode

      private JButton buttonErode
      DOCUMENT ME!
    • buttonExportToMask

      private JButton buttonExportToMask
      DOCUMENT ME!
    • buttonExportToVOI

      private JButton buttonExportToVOI
      DOCUMENT ME!
    • buttonFillBackground

      private JButton buttonFillBackground
      DOCUMENT ME!
    • buttonFillBackgrounds

      private JButton buttonFillBackgrounds
      DOCUMENT ME!
    • buttonGrowRegion

      private JButton buttonGrowRegion
      DOCUMENT ME!
    • buttonImportFromMask

      private JButton buttonImportFromMask
      DOCUMENT ME!
    • buttonImportFromVOI

      private JButton buttonImportFromVOI
      DOCUMENT ME!
    • buttonRevert

      private JButton buttonRevert
      DOCUMENT ME!
    • buttonRmObject

      private JButton buttonRmObject
      DOCUMENT ME!
    • buttonRmObjects

      private JButton buttonRmObjects
      DOCUMENT ME!
    • buttonShortkeys

      private JToggleButton buttonShortkeys
      DOCUMENT ME!
    • c2x

      private int c2x
      DOCUMENT ME!
    • c2y

      private int c2y
      DOCUMENT ME!
    • c2z

      private int c2z
      DOCUMENT ME!
    • c3x

      private int c3x
      DOCUMENT ME!
    • c3y

      private int c3y
      DOCUMENT ME!
    • c3z

      private int c3z
      DOCUMENT ME!
    • checkSave

      private JCheckBox checkSave
      DOCUMENT ME!
    • checkThreshold

      private JCheckBox checkThreshold
      handling of intensity threshold.
    • comboConnectType

      private JComboBox comboConnectType
      DOCUMENT ME!
    • comboDilateDimType

      private JComboBox comboDilateDimType
      DOCUMENT ME!
    • comboErodeDimType

      private JComboBox comboErodeDimType
      DOCUMENT ME!
    • comboStructureType

      private JComboBox comboStructureType
      DOCUMENT ME!
    • connectType

      private String connectType
      DOCUMENT ME!
    • connectTypes

      private String[] connectTypes
      DOCUMENT ME!
    • dilateDimType

      private String dilateDimType
      DOCUMENT ME!
    • dimTypes

      private String[] dimTypes
      DOCUMENT ME!
    • erodeDimType

      private String erodeDimType
      DOCUMENT ME!
    • exportPanel

      private JPanel exportPanel
      DOCUMENT ME!
    • getMouseInput

      private int getMouseInput
      DOCUMENT ME!
    • groupBackground

      private ButtonGroup groupBackground
      DOCUMENT ME!
    • groupBackgrounds

      private ButtonGroup groupBackgrounds
      DOCUMENT ME!
    • groupGrowRegion

      private ButtonGroup groupGrowRegion
      DOCUMENT ME!
    • groupObject

      private ButtonGroup groupObject
      DOCUMENT ME!
    • groupObjects

      private ButtonGroup groupObjects
      DOCUMENT ME!
    • image

      private ModelImage image
      DOCUMENT ME!
    • labelConnectType

      private JLabel labelConnectType
      DOCUMENT ME!
    • labelO2D

      private JLabel labelO2D
      DOCUMENT ME!
    • labelO3D

      private JLabel labelO3D
      DOCUMENT ME!
    • labelStructureType

      private JLabel labelStructureType
      DOCUMENT ME!
    • labelStructuring

      private JLabel labelStructuring
      DOCUMENT ME!
    • lowerThreshold

      private float lowerThreshold
      handling of intensity threshold.
    • mainPanel

      private JPanel mainPanel
      dialog elements.
    • morphoPanel

      private JPanel morphoPanel
      DOCUMENT ME!
    • movePanel

      private JPanel movePanel
      DOCUMENT ME!
    • nx

      private int nx
      DOCUMENT ME!
    • ny

      private int ny
      DOCUMENT ME!
    • nz

      private int nz
      DOCUMENT ME!
    • objectPanel

      private JPanel objectPanel
      DOCUMENT ME!
    • panelThreshold

      private JPanel panelThreshold
      DOCUMENT ME!
    • previous

      private BitSet previous
      internal objects.
    • radioBackground2D

      private JRadioButton radioBackground2D
      DOCUMENT ME!
    • radioBackground3D

      private JRadioButton radioBackground3D
      DOCUMENT ME!
    • radioBackgrounds2D

      private JRadioButton radioBackgrounds2D
      DOCUMENT ME!
    • radioBackgrounds3D

      private JRadioButton radioBackgrounds3D
      DOCUMENT ME!
    • radioGrowRegion2D

      private JRadioButton radioGrowRegion2D
      DOCUMENT ME!
    • radioGrowRegion3D

      private JRadioButton radioGrowRegion3D
      DOCUMENT ME!
    • radioObject2D

      private JRadioButton radioObject2D
      DOCUMENT ME!
    • radioObject3D

      private JRadioButton radioObject3D
      DOCUMENT ME!
    • radioObjects2D

      private JRadioButton radioObjects2D
      DOCUMENT ME!
    • radioObjects3D

      private JRadioButton radioObjects3D
      DOCUMENT ME!
    • regionGrowDim

      private int regionGrowDim
      parameters.
    • resultImage

      private ModelImage resultImage
      DOCUMENT ME!
    • rmObjDim

      private int rmObjDim
      DOCUMENT ME!
    • rmObjsDim

      private int rmObjsDim
      DOCUMENT ME!
    • save

      private PaintAutoSave save
      DOCUMENT ME!
    • saver

      private Timer saver
      DOCUMENT ME!
    • se2xy

      private BitSet se2xy
      DOCUMENT ME!
    • se2yz

      private BitSet se2yz
      DOCUMENT ME!
    • se2xz

      private BitSet se2xz
      DOCUMENT ME!
    • se3

      private BitSet se3
      DOCUMENT ME!
    • spinLower

      private JSpinner spinLower
      handling of intensity threshold.
    • spinUpper

      private JSpinner spinUpper
      DOCUMENT ME!
    • structureSize

      private float structureSize
      DOCUMENT ME!
    • structureType

      private String structureType
      DOCUMENT ME!
    • structureTypes

      private String[] structureTypes
      DOCUMENT ME!
    • textSave

      private JTextField textSave
      DOCUMENT ME!
    • textStructuring

      private JTextField textStructuring
      DOCUMENT ME!
    • upperThreshold

      private float upperThreshold
      handling of intensity threshold.
  • Constructor Details

    • JDialogPowerPaint

      public JDialogPowerPaint(Frame theParentFrame, ModelImage im)
      Creates dialog for plugin.
      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.
    • getResultImage

      public ModelImage getResultImage()
      Accessor that returns the image.
      Returns:
      The result image.
    • keyPressed

      public void keyPressed(KeyEvent e)
      Handle the key pressed event.
      Specified by:
      keyPressed in interface KeyListener
      Parameters:
      e - DOCUMENT ME!
    • keyReleased

      public void keyReleased(KeyEvent e)
      Handle the key released event.
      Specified by:
      keyReleased in interface KeyListener
      Parameters:
      e - DOCUMENT ME!
    • keyTyped

      public void keyTyped(KeyEvent e)
      Handle the key typed event.
      Specified by:
      keyTyped in interface KeyListener
      Parameters:
      e - DOCUMENT ME!
    • mouseClicked

      public void mouseClicked(MouseEvent mouseEvent)
      Listening to mouse events when updating paint.
      Specified by:
      mouseClicked in interface MouseListener
      Parameters:
      mouseEvent - MouseEvent
    • mouseEntered

      public void mouseEntered(MouseEvent mouseEvent)
      DOCUMENT ME!
      Specified by:
      mouseEntered in interface MouseListener
      Parameters:
      mouseEvent - DOCUMENT ME!
    • mouseExited

      public void mouseExited(MouseEvent mouseEvent)
      DOCUMENT ME!
      Specified by:
      mouseExited in interface MouseListener
      Parameters:
      mouseEvent - DOCUMENT ME!
    • mousePressed

      public void mousePressed(MouseEvent mouseEvent)
      DOCUMENT ME!
      Specified by:
      mousePressed in interface MouseListener
      Parameters:
      mouseEvent - DOCUMENT ME!
    • mouseReleased

      public void mouseReleased(MouseEvent mouseEvent)
      DOCUMENT ME!
      Specified by:
      mouseReleased in interface MouseListener
      Parameters:
      mouseEvent - DOCUMENT ME!
    • mouseWheelMoved

      public void mouseWheelMoved(MouseWheelEvent mouseEvent)
      DOCUMENT ME!
      Specified by:
      mouseWheelMoved in interface MouseWheelListener
      Parameters:
      mouseEvent - DOCUMENT ME!
    • stateChanged

      public void stateChanged(ChangeEvent e)
      state change listener for the sliders.
      Specified by:
      stateChanged in interface ChangeListener
      Parameters:
      e - DOCUMENT ME!
    • connected18Object3D

      private int[][][] connected18Object3D(boolean[][][] img, int nx, int ny, int nz)
      3D images: 18-neighborhood.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      nz - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • connected26Object3D

      private int[][][] connected26Object3D(boolean[][][] img, int nx, int ny, int nz)
      3D images: 26-neighborhood.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      nz - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • connected4Object2D

      private int[][] connected4Object2D(boolean[][] img, int nx, int ny)
      2D images: 4-connectivity.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • connected6Object3D

      private int[][][] connected6Object3D(boolean[][][] img, int nx, int ny, int nz)
      3D images: 6-neighborhood.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      nz - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • connected8Object2D

      private int[][] connected8Object2D(boolean[][] img, int nx, int ny)
      2D images: 8-neighborhood.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • createStructuringElement2D

      private void createStructuringElement2D()
      make the structuring element for morphology.
    • createStructuringElement3D

      private void createStructuringElement3D()
      make the structuring element for morphology.
    • dilateImage

      private void dilateImage()
      dilation.
    • dilateObject

      private BitSet dilateObject(BitSet img, int nx, int ny, int nz, BitSet mask, int dx, int dy, int dz)
      dilate binary object with a custom kernel using the BitSet structure with indexing convention index = x + nx*y + nx*ny*z.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      nz - DOCUMENT ME!
      mask - DOCUMENT ME!
      dx - DOCUMENT ME!
      dy - DOCUMENT ME!
      dz - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • erodeImage

      private void erodeImage()
      erosion.
    • erodeObject

      private BitSet erodeObject(BitSet img, int nx, int ny, int nz, BitSet mask, int dx, int dy, int dz)
      erode binary object with a custom kernel using the BitSet structure with indexing convention index = x + nx*y + nx*ny*z.
      Parameters:
      img - DOCUMENT ME!
      nx - DOCUMENT ME!
      ny - DOCUMENT ME!
      nz - DOCUMENT ME!
      mask - DOCUMENT ME!
      dx - DOCUMENT ME!
      dy - DOCUMENT ME!
      dz - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • exportToMask

      private void exportToMask()
      export to Mask.
    • exportToVOI

      private void exportToVOI()
      export to VOI.
    • fillAllBackgrounds

      private void fillAllBackgrounds(int xS, int yS, int zS, int sliceDir)
      background filling algorithm.
      Parameters:
      xS - ModelImage-Space x coordinate
      yS - ModelImage-Space y coordinate
      zS - ModelImage-Space z coordinate
      sliceDir - (XY, XZ, ZY)
    • fillBackground

      private void fillBackground(int xS, int yS, int zS, int sliceDir)
      background filling algorithm.
      Parameters:
      xS - ModelImage-Space x coordinate
      yS - ModelImage-Space y coordinate
      zS - ModelImage-Space z coordinate
      sliceDir - (XY, XZ, ZY)
    • growRegion

      private void growRegion(int xS, int yS, int zS, int sliceDir)
      region growing algorithm.
      Parameters:
      xS - ModelImage-Space x coordinate
      yS - ModelImage-Space y coordinate
      zS - ModelImage-Space z coordinate
      sliceDir - (XY, XZ, ZY)
    • importFromMask

      private void importFromMask()
      import from Mask.
    • importFromVOI

      private void importFromVOI()
      import from VOI.
    • init

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

      private void propagateAll()
      propagate to all slices.
    • propagateDown

      private void propagateDown()
      propagate to the next slice.
    • propagateUp

      private void propagateUp()
      propagate to the next slice.
    • refreshImagePaint

      private void refreshImagePaint(ModelImage img, BitSet obj)
      refresh the displayed mask.
      Parameters:
      img - DOCUMENT ME!
      obj - DOCUMENT ME!
    • isInsideIntensityThreshold

      private boolean isInsideIntensityThreshold(int x, int y, int z, ModelImage img, int xS, int yS, int zS)
      check if point (x,y,z) has same intensity as (xS,yS,zS)
    • trimIntensityThreshold

      private void trimIntensityThreshold(ModelImage img, BitSet obj, BitSet prev)
      trim the mask using the intensity
      Parameters:
      img - DOCUMENT ME!
      obj - DOCUMENT ME!
      prev - DOCUMENT ME!
    • removeAllObjects

      private void removeAllObjects(int xS, int yS, int zS, int sliceDir)
      object removal algorithm.
      Parameters:
      xS - ModelImage-Space x coordinate
      yS - ModelImage-Space y coordinate
      zS - ModelImage-Space z coordinate
      sliceDir - (XY, XZ, ZY)
    • removeObject

      private void removeObject(int xS, int yS, int zS, int sliceDir)
      object removal algorithm.
      Parameters:
      xS - ModelImage-Space x coordinate
      yS - ModelImage-Space y coordinate
      zS - ModelImage-Space z coordinate
      sliceDir - (XY, XZ, ZY)
    • revertImage

      private void revertImage()
      revert to previous mask.