Class JDialogPromise12Train3DCnns

  • 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 JDialogPromise12Train3DCnns
    extends JDialogBase
    implements AlgorithmInterface
    This is the first try to 3D convolution deep learning models. 3D-Unet. Miccai Promise 12 data: Preprocessed after, 1. N4 correction 2. Transform to 0.5m x 0.5m x 1.5m resolution images 3. Intensity normalization Apply 3D cube cropping to the 3D images. The 3D cube size is 80x80x24. The MR image and corresponding binary mask images need to crop into two 3D small cubes, then merge them into H5 readable volume. The cropping mechanism include three types: 1) general sliding window overlap cropping. 2) random sampling based cropping inside the image. 3) ROI based random cropping, within or inside the ROI region.
    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.
      void callAlgorithm()
      Driver function to read image and VOIs, and convert each 3D image to 2D slices.
      void crop()  
      private void cropImage_randomSample​(ModelImage image, ModelImage imageMask, int imageIndex, java.io.PrintWriter fileWriter)  
      private void cropImage_randomSample_voi_region​(ModelImage image, ModelImage imageMask, int imageIndex, java.io.PrintWriter fileWriter)  
      private void cropImage_slidingWindow​(ModelImage image, ModelImage imageMask, int imageIndex, java.io.PrintWriter fileWriter)  
      void disposeLocal()
      dispose memory
      private int findMaskExtents​(ModelImage maskImage)  
      void H5Write​(ModelImage image, ModelImage mask)  
      void init()
      Initial panel
      void loadFiles()
      load image files and voi files
      static void pause()  
      private void processDir_folder_1​(java.io.File dir)  
      private void processDir_folder_2​(java.io.File dir)  
      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 saveImage​(ModelImage image, java.lang.String imgName, ModelImage mask, java.lang.String maskName, java.lang.String sliceDirTrainImage, java.lang.String sliceDirTrainMask, java.lang.String coordinate_label, java.io.PrintWriter fileWriter)  
      void scaleIntensity()  
      ModelImage scaleIntensity​(ModelImage image)  
      void sortKeyImage_1()  
      void sortKeyImage_2()  
      void TestH5WriteFloats​(java.lang.String filename)  
      private void traverse_folder_1​(java.io.File dir)  
      private void traverse_folder_2​(java.io.File dir)  
      void writeAnalyze​(ModelImage image, ModelImage mask, ModelImage img_rotate_90, ModelImage img_mask_rotate_90, ModelImage img_rotate_180, ModelImage img_mask_rotate_180, ModelImage img_rotate_270, ModelImage img_mask_rotate_270, ModelImage img_flip_leftright, ModelImage img_mask_flip_leftright, ModelImage img_flip_topbottom, ModelImage img_mask_flip_topbottom, int x, int y, int z, int imageIndex, java.io.PrintWriter fileWriter)  
      • 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.
      • keyImagesCrop

        private java.util.Vector<ModelImage> keyImagesCrop
      • keyImagesScaleIntensity

        private java.util.Vector<ModelImage> keyImagesScaleIntensity
      • keyImagesMask

        private java.util.Vector<ModelImage> keyImagesMask
      • keyImageVector1

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

        private java.util.Vector<java.lang.String> keyImageVector2
      • 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
      • count

        int count
    • Constructor Detail

      • JDialogPromise12Train3DCnns

        public JDialogPromise12Train3DCnns​(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
      • 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_2

        private void traverse_folder_2​(java.io.File dir)
      • processDir_folder_2

        private void processDir_folder_2​(java.io.File dir)
      • sortKeyImage_2

        public void sortKeyImage_2()
      • 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.
      • crop

        public void crop()
      • scaleIntensity

        public void scaleIntensity()
      • cropImage_randomSample

        private void cropImage_randomSample​(ModelImage image,
                                            ModelImage imageMask,
                                            int imageIndex,
                                            java.io.PrintWriter fileWriter)
      • findMaskExtents

        private int findMaskExtents​(ModelImage maskImage)
      • cropImage_randomSample_voi_region

        private void cropImage_randomSample_voi_region​(ModelImage image,
                                                       ModelImage imageMask,
                                                       int imageIndex,
                                                       java.io.PrintWriter fileWriter)
      • cropImage_slidingWindow

        private void cropImage_slidingWindow​(ModelImage image,
                                             ModelImage imageMask,
                                             int imageIndex,
                                             java.io.PrintWriter fileWriter)
      • saveImage

        public void saveImage​(ModelImage image,
                              java.lang.String imgName,
                              ModelImage mask,
                              java.lang.String maskName,
                              java.lang.String sliceDirTrainImage,
                              java.lang.String sliceDirTrainMask,
                              java.lang.String coordinate_label,
                              java.io.PrintWriter fileWriter)
      • H5Write

        public void H5Write​(ModelImage image,
                            ModelImage mask)
                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • TestH5WriteFloats

        public void TestH5WriteFloats​(java.lang.String filename)
                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • pause

        public static void pause()
      • loadFiles

        public void loadFiles()
        load image files and voi files
      • 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.