Class JDialogProstateJMI_2017_HEDmap

  • 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 JDialogProstateJMI_2017_HEDmap
    extends JDialogBase
    implements AlgorithmInterface
    For testing phase: This class reads the original MRI images and HED deep learning model predicted MRI and CED energy map results, generates the final VOI contours.
    Author:
    Ruida Cheng
    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 Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent event)
      Dialog local actionPerformed handler.
      void algorithmPerformed​(AlgorithmBase algorithm)
      This method is required if the AlgorithmPerformed interface is implemented.
      void buildKeyImagePanel()
      Panel contains both the 3D image dir and saved 2D slices atlas dir.
      ModelImage calculateTransform_resol_fix_2D​(ModelImage image, float resolution)  
      ModelImage calculateTransform_resol_fix_3D​(ModelImage image, float resolution)  
      void callAlgorithm()
      Driver function to read image and VOIs, and convert each 3D image to 2D slices.
      static boolean deleteDir​(java.io.File dir)
      Debugger to test dir deletion.
      void disposeLocal()
      dispose memory
      private void generateContours()  
      void init()
      Initial panel
      void loadFiles()
      load image files and voi files
      static void pause()  
      void printImages()
      Debugger for test the image and VOis reading.
      private void processDir_folder_1​(java.io.File dir)  
      private void processDir_folder_5​(java.io.File dir, int index)  
      void readFile()  
      private void readKeyImageDir()
      Read 3D images atlas directory.
      private void recordSaveImageDir()
      Let user specify the saved 2D slices atlas, record the save directory.
      void saveImages()
      Save the 2D slices and VOIs to user specified dir.
      private void savePNGfile​(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, boolean isMask)  
      void saveTestedImages()  
      void smoothVOI30​(ModelImage maskImage, ModelImage resultImage)  
      void smoothVOI60​(ModelImage maskImage, ModelImage resultImage)
      Smooth VOIs to 60 points.
      private void sortImageTable()  
      void sortKeyImage_1()  
      private void traverse_folder_1​(java.io.File dir)  
      private void traverse_folder_5​(java.io.File dir)  
      private void traverse_folder_5​(java.io.File dir, int index)  
      • 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

      • labelKeyImage

        private javax.swing.JLabel labelKeyImage
        key image directory.
      • textFieldKeyImage

        private javax.swing.JTextField textFieldKeyImage
      • buttonKeyImage

        private javax.swing.JButton buttonKeyImage
      • imageSelectionPanel

        private javax.swing.JPanel imageSelectionPanel
      • keyImages

        private java.util.Vector<ModelImage> keyImages
        image vector to hold the actual images.
      • keyImageVector1

        private java.util.Vector<java.lang.String> keyImageVector1
      • keyImageVOIVector1

        private java.util.Vector<java.lang.String> keyImageVOIVector1
      • keyImageVector2

        private java.util.Vector<java.lang.String> keyImageVector2
      • keyImageVOIVector2

        private java.util.Vector<java.lang.String> keyImageVOIVector2
      • keyImageVector3

        private java.util.Vector<java.lang.String> keyImageVector3
      • keyImageVOIVector3

        private java.util.Vector<java.lang.String> keyImageVOIVector3
      • keyImageVector4

        private java.util.Vector<java.lang.String> keyImageVector4
      • keyImageVOIVector4

        private java.util.Vector<java.lang.String> keyImageVOIVector4
      • keyImageVector5

        private java.util.Vector<java.lang.String> keyImageVector5
      • keyImageVOIVector5

        private java.util.Vector<java.lang.String> keyImageVOIVector5
      • cropKeyImages

        private java.util.Vector<ModelImage> cropKeyImages
        cropped key image vector.
      • labelSaveImage

        private javax.swing.JLabel labelSaveImage
        saved 2D slices atlas dir.
      • textFieldSaveImage

        private javax.swing.JTextField textFieldSaveImage
      • buttonSaveImage

        private javax.swing.JButton buttonSaveImage
      • saveImageChooser

        private javax.swing.JFileChooser saveImageChooser
      • saveImageDirectory

        private java.lang.String saveImageDirectory
      • imageTable

        java.util.Hashtable<java.lang.Integer,​java.util.Vector<java.lang.String>> imageTable
      • newImageTable

        java.util.Hashtable<java.lang.Integer,​java.util.Vector<java.lang.String>> newImageTable
      • maskTable

        java.util.Hashtable<java.lang.Integer,​java.util.Vector<ModelImage>> maskTable
      • maskImageTable

        java.util.Hashtable<java.lang.Integer,​java.util.Vector<java.lang.String>> maskImageTable
      • imageHashtable

        java.util.Hashtable<java.lang.Integer,​ModelImage> imageHashtable
      • voiHashtable

        java.util.Hashtable<java.lang.String,​VOI> voiHashtable
      • imageNameHashtable

        java.util.Hashtable<java.lang.String,​java.util.Vector<java.lang.String>> imageNameHashtable
    • Constructor Detail

      • JDialogProstateJMI_2017_HEDmap

        public JDialogProstateJMI_2017_HEDmap​(java.awt.Frame theParentFrame)
        Constructor.
        Parameters:
        theParentFrame -
    • Method Detail

      • disposeLocal

        public void disposeLocal()
        dispose memory
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        Dialog local actionPerformed handler.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Overrides:
        actionPerformed in class JDialogBase
      • sortImageTable

        private void sortImageTable()
      • pause

        public static void pause()
      • recordSaveImageDir

        private void recordSaveImageDir()
        Let user specify the saved 2D slices atlas, record the save directory.
      • readKeyImageDir

        private void readKeyImageDir()
        Read 3D images atlas directory.
      • traverse_folder_1

        private void traverse_folder_1​(java.io.File dir)
      • processDir_folder_1

        private void processDir_folder_1​(java.io.File dir)
      • sortKeyImage_1

        public void sortKeyImage_1()
      • traverse_folder_5

        private void traverse_folder_5​(java.io.File dir)
      • traverse_folder_5

        private void traverse_folder_5​(java.io.File dir,
                                       int index)
      • processDir_folder_5

        private void processDir_folder_5​(java.io.File dir,
                                         int index)
      • printImages

        public void printImages()
        Debugger for test the image and VOis reading.
      • 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.
      • callAlgorithm

        public void callAlgorithm()
        Driver function to read image and VOIs, and convert each 3D image to 2D slices.
      • generateContours

        private void generateContours()
      • calculateTransform_resol_fix_2D

        public ModelImage calculateTransform_resol_fix_2D​(ModelImage image,
                                                          float resolution)
      • calculateTransform_resol_fix_3D

        public ModelImage calculateTransform_resol_fix_3D​(ModelImage image,
                                                          float resolution)
      • saveTestedImages

        public void saveTestedImages()
      • saveImages

        public void saveImages()
        Save the 2D slices and VOIs to user specified dir.
      • savePNGfile

        private void savePNGfile​(java.lang.String dirName,
                                 java.lang.String fileName,
                                 ModelImage srcImage,
                                 float minIntensity,
                                 float maxIntensity,
                                 boolean isMask)
      • smoothVOI60

        public void smoothVOI60​(ModelImage maskImage,
                                ModelImage resultImage)
        Smooth VOIs to 60 points.
        Parameters:
        maskImage -
        resultImage -
      • loadFiles

        public void loadFiles()
        load image files and voi files
      • deleteDir

        public static boolean deleteDir​(java.io.File dir)
        Debugger to test dir deletion.
        Parameters:
        dir -
        Returns:
      • readFile

        public void readFile()
      • init

        public void init()
        Initial panel
      • buildKeyImagePanel

        public void buildKeyImagePanel()
        Panel contains both the 3D image dir and saved 2D slices atlas dir.