Class JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest

  • 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 JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest
    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.
      void callAlgorithm()
      Driver function to read image and VOIs, and convert each 3D image to 2D slices.
      void crossValidationTest()  
      void crossValidationTestExtra()  
      void crossValidationTrain()  
      void disposeLocal()
      dispose memory
      void init()
      Initial panel
      void loadFiles()
      load image files and voi files
      private void loadSTLBinaryMesh​(java.io.File file, ModelImage kImage, int imageOrientation)  
      private void loadSTLBinaryMesh​(java.io.File file, ModelImage kImage, int imageOrientation, java.lang.String hashID)  
      static void pause()  
      private void printTable()  
      void readFile()  
      void readImages()  
      void readImagesExra()  
      private void readKeyImageDir()
      Read 3D images atlas directory.
      private void readSTLBinary​(java.io.FileInputStream data, ModelImage kImage, int imageOrientation)  
      private void readSTLBinary​(java.io.FileInputStream data, ModelImage kImage, int imageOrientation, java.lang.String hashID)  
      private void recordSaveImageDir()
      Let user specify the saved 2D slices atlas, record the save directory.
      void saveImages​(ModelImage image, int[] index, java.lang.String folderName, java.lang.String orientation)  
      void saveImagesTest​(ModelImage cropKeyImage, java.lang.String pid, java.lang.String folderName)  
      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()  
      void smoothVOI60​(ModelImage maskImage, ModelImage resultImage)
      Smooth VOIs to 60 points.
      private void traverse_date​(java.io.File dir, java.lang.String patientID, java.lang.String date)  
      private void traverse_dicom​(java.io.File dir, java.lang.String hashID, java.lang.String orientation)  
      private void traverse_firstLayer​(java.io.File firstDir, java.lang.String child)  
      private void traverse_Layer​(java.io.File dir)  
      private void traverse_Layer_extra​(java.io.File dir)  
      private void traverse_orientation​(java.io.File dir, java.lang.String hashID)  
      private void traverse_patientID​(java.io.File dir, java.lang.String patientID)  
      private void traverse_secondLayer​(java.io.File firstLayer, java.lang.String hashID)  
      private void traverse_serial​(java.io.File dir, java.lang.String hashID, java.lang.String orientation)  
      • 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.
      • 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
      • imageNameHashtable

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

        java.util.Hashtable<java.lang.String,​java.util.Hashtable<java.lang.String,​java.lang.String>> voiNameHashtable
      • srcImageTable

        java.util.Hashtable<java.lang.String,​java.util.Vector<ModelImage>> srcImageTable
      • srcVOITable

        java.util.Hashtable<java.lang.String,​java.util.Vector<VOI>> srcVOITable
      • origImageTable

        java.util.Hashtable<java.lang.String,​java.util.Hashtable<java.lang.String,​ModelImage>> origImageTable
      • origImageTableName

        java.util.Hashtable<java.lang.String,​java.util.Hashtable<java.lang.String,​java.lang.String>> origImageTableName
      • origVOITableName

        java.util.Hashtable<java.lang.String,​java.util.Hashtable<java.lang.String,​java.lang.String>> origVOITableName
      • imageNameHashtableExtra

        java.util.Hashtable<java.lang.String,​java.util.Hashtable<java.lang.String,​java.util.Vector<java.lang.String>>> imageNameHashtableExtra
      • imageHashtableExtra

        java.util.Hashtable<java.lang.String,​java.util.Hashtable<java.lang.String,​ModelImage>> imageHashtableExtra
    • Constructor Detail

      • JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest

        public JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest​(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_Layer_extra

        private void traverse_Layer_extra​(java.io.File dir)
      • traverse_patientID

        private void traverse_patientID​(java.io.File dir,
                                        java.lang.String patientID)
      • traverse_date

        private void traverse_date​(java.io.File dir,
                                   java.lang.String patientID,
                                   java.lang.String date)
      • traverse_orientation

        private void traverse_orientation​(java.io.File dir,
                                          java.lang.String hashID)
      • traverse_serial

        private void traverse_serial​(java.io.File dir,
                                     java.lang.String hashID,
                                     java.lang.String orientation)
      • traverse_dicom

        private void traverse_dicom​(java.io.File dir,
                                    java.lang.String hashID,
                                    java.lang.String orientation)
      • traverse_Layer

        private void traverse_Layer​(java.io.File dir)
      • traverse_firstLayer

        private void traverse_firstLayer​(java.io.File firstDir,
                                         java.lang.String child)
      • traverse_secondLayer

        private void traverse_secondLayer​(java.io.File firstLayer,
                                          java.lang.String hashID)
      • 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.
      • saveTestedImages

        public void saveTestedImages()
      • crossValidationTestExtra

        public void crossValidationTestExtra()
      • crossValidationTrain

        public void crossValidationTrain()
      • crossValidationTest

        public void crossValidationTest()
      • printTable

        private void printTable()
      • readImagesExra

        public void readImagesExra()
      • readImages

        public void readImages()
      • saveImages

        public void saveImages​(ModelImage image,
                               int[] index,
                               java.lang.String folderName,
                               java.lang.String orientation)
      • saveImagesTest

        public void saveImagesTest​(ModelImage cropKeyImage,
                                   java.lang.String pid,
                                   java.lang.String folderName)
      • savePNGfile

        private void savePNGfile​(java.lang.String dirName,
                                 java.lang.String fileName,
                                 ModelImage srcImage,
                                 float minIntensity,
                                 float maxIntensity,
                                 int xDim,
                                 int yDim,
                                 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
      • readFile

        public void readFile()
      • loadSTLBinaryMesh

        private void loadSTLBinaryMesh​(java.io.File file,
                                       ModelImage kImage,
                                       int imageOrientation)
      • loadSTLBinaryMesh

        private void loadSTLBinaryMesh​(java.io.File file,
                                       ModelImage kImage,
                                       int imageOrientation,
                                       java.lang.String hashID)
      • readSTLBinary

        private void readSTLBinary​(java.io.FileInputStream data,
                                   ModelImage kImage,
                                   int imageOrientation)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • readSTLBinary

        private void readSTLBinary​(java.io.FileInputStream data,
                                   ModelImage kImage,
                                   int imageOrientation,
                                   java.lang.String hashID)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • pause

        public static void pause()
      • init

        public void init()
        Initial panel
      • buildKeyImagePanel

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