Class JDialogProstate2DSlicesAtlasPngConverter_JMI

  • 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 JDialogProstate2DSlicesAtlasPngConverter_JMI
    extends JDialogBase
    implements AlgorithmInterface
    This class convert the 3D images to 2D slices based atlas. Users specify the 3D prostate images dir, and output 2D slices based dir, the algorithm auto convert each 3D image to 2D slices with corresponding VOIs. Each saved VOIs is 2-contour based VOI, which is used to build the Active Appearance Model (AAM).
    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.
      private ModelImage calculateCoherenceEnhancingDiffusion​(ModelImage inImage)  
      void callAlgorithm()
      Driver function to read image and VOIs, and convert each 3D image to 2D slices.
      private ModelImage cropImage​(ModelImage image)  
      private ModelImage cropImage_ext​(ModelImage image)  
      void cropKeyImages()
      Crop key images.
      void crossValidationTrain()  
      static boolean deleteDir​(java.io.File dir)
      Debugger to test dir deletion.
      void disposeLocal()
      dispose memory
      void disposeMemory()  
      private void generateBoundaryContours​(VOIBase srcContour, ModelImage targetImageSlice)
      Convert VOI from one contour to two contours
      void init()
      Initial panel
      void loadFiles()
      load image files and voi files
      void printImages()
      Debugger for test the image and VOis reading.
      private void processDir_folder_1​(java.io.File dir)  
      private void processDir_folder_2​(java.io.File dir)  
      private void processDir_folder_3​(java.io.File dir)  
      private void processDir_folder_4​(java.io.File dir)  
      private void processDir_folder_5​(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.
      private void rotateToStartingPoint_leftMost​(float[] xPts, float[] yPts, int xDim, int yDim)  
      private void rotateToStartingPoint_yMid​(float[] xPts, float[] yPts, int xDim, int yDim)
      Re-oriented the starting and ending VOIs.
      void runCED_ext()  
      void runCrop_ext()  
      void runMask_ext()  
      void runScaleIntensity_ext()  
      void saveImages()
      Save the 2D slices and VOIs to user specified dir.
      void saveImages_ext​(int i, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.Integer,​ModelImage> whichTable)  
      private void savePNGfile​(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, boolean isMask)  
      private void savePNGfile​(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)  
      void saveTestedImages()  
      ModelImage scaleIntensity​(ModelImage image)  
      void smoothVOI60​(ModelImage maskImage, ModelImage resultImage)
      Smooth VOIs to 60 points.
      void sortKeyImage_1()  
      void sortKeyImage_2()  
      void sortKeyImage_3()  
      void sortKeyImage_4()  
      void sortKeyImage_5()  
      private void traverse_folder_1​(java.io.File dir)  
      private void traverse_folder_2​(java.io.File dir)  
      private void traverse_folder_3​(java.io.File dir)  
      private void traverse_folder_4​(java.io.File dir)  
      private void traverse_folder_5​(java.io.File dir)  
      • 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

      • boxYmin

        private int boxYmin
        bounding box for crop the image. Currently set from 0 to 512, the orginal image slice size.
      • boxYmax

        private int boxYmax
        bounding box for crop the image. Currently set from 0 to 512, the orginal image slice size.
      • boxXmin

        private int boxXmin
      • boxXmax

        private int boxXmax
      • xBounds

        private int[] xBounds
        X cropped region bounds.
      • yBounds

        private int[] yBounds
        Y cropped region bounds.
      • zBounds

        private int[] zBounds
        Z cropped region bound.
      • cropImage

        private ModelImage cropImage
        result cropped image.
      • 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
      • keyImageChooser

        private javax.swing.JFileChooser keyImageChooser
        key images variables.
      • keyImageDirectory

        private java.lang.String keyImageDirectory
      • axisList

        private javax.swing.JComboBox axisList
      • labelAxis

        private javax.swing.JLabel labelAxis
      • Axial

        private static int Axial
      • Saggital

        private static int Saggital
      • Coronal

        private static int Coronal
      • axis

        private int axis
      • keyImages

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

        private java.util.Vector<VOI[]> keyImageVOIs
        voi vector to hold the actual vois.
      • 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
      • imageHashtableWp_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> imageHashtableWp_ext
      • imageHashtableCg_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> imageHashtableCg_ext
      • cedTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> cedTable_ext
      • voiTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> voiTable_ext
      • scaleImageTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> scaleImageTable_ext
      • scaleIntensityTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> scaleIntensityTable_ext
      • scaleCedTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> scaleCedTable_ext
      • scaleVoiTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> scaleVoiTable_ext
      • cropTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> cropTable_ext
      • cropVoiTable_ext

        java.util.Hashtable<java.lang.Integer,​ModelImage> cropVoiTable_ext
    • Constructor Detail

      • JDialogProstate2DSlicesAtlasPngConverter_JMI

        public JDialogProstate2DSlicesAtlasPngConverter_JMI​(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()
      • traverse_folder_3

        private void traverse_folder_3​(java.io.File dir)
      • processDir_folder_3

        private void processDir_folder_3​(java.io.File dir)
      • sortKeyImage_3

        public void sortKeyImage_3()
      • traverse_folder_4

        private void traverse_folder_4​(java.io.File dir)
      • processDir_folder_4

        private void processDir_folder_4​(java.io.File dir)
      • sortKeyImage_4

        public void sortKeyImage_4()
      • traverse_folder_5

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

        private void processDir_folder_5​(java.io.File dir)
      • sortKeyImage_5

        public void sortKeyImage_5()
      • 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.
      • crossValidationTrain

        public void crossValidationTrain()
      • saveImages_ext

        public void saveImages_ext​(int i,
                                   int[] index,
                                   java.lang.String folderName,
                                   java.util.Hashtable<java.lang.Integer,​ModelImage> whichTable)
      • savePNGfile

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

        public void disposeMemory()
      • runCED_ext

        public void runCED_ext()
      • runMask_ext

        public void runMask_ext()
      • runCrop_ext

        public void runCrop_ext()
      • runScaleIntensity_ext

        public void runScaleIntensity_ext()
      • calculateCoherenceEnhancingDiffusion

        private ModelImage calculateCoherenceEnhancingDiffusion​(ModelImage inImage)
      • 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)
      • rotateToStartingPoint_yMid

        private void rotateToStartingPoint_yMid​(float[] xPts,
                                                float[] yPts,
                                                int xDim,
                                                int yDim)
        Re-oriented the starting and ending VOIs.
        Parameters:
        xPts - voi x coordinate
        yPts - voi y coordinate
        xDim - image x dimension
        yDim - image y dimension
      • rotateToStartingPoint_leftMost

        private void rotateToStartingPoint_leftMost​(float[] xPts,
                                                    float[] yPts,
                                                    int xDim,
                                                    int yDim)
      • smoothVOI60

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

        private void generateBoundaryContours​(VOIBase srcContour,
                                              ModelImage targetImageSlice)
        Convert VOI from one contour to two contours
        Parameters:
        srcContour - single VOI contour
        targetImageSlice - target 2D image slice
      • cropKeyImages

        public void cropKeyImages()
        Crop key images.
      • 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.