Class Knees_90_data_train_extraction

  • 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 Knees_90_data_train_extraction
    extends JDialogBase
    implements AlgorithmInterface
    This class converts the original knees MRI images into isotropic images. 1) Convert the VOIs into binary image masks. 2) Convert the original images into isotropic images 3) Convert the isotropic images from sagittal to axial; sagittal to coronal. 4) Along each orietation, generate the CED image in addition to MRI. 5) Save all the images (isotropic axial, sagittal, coronal images with corresponding binary masks).
    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 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)  
      ModelImage calculateTransform​(ModelImage keyImage)  
      void callAlgorithm()
      Driver function to read image and VOIs, and convert each 3D image to 2D slices.
      void conversion()  
      void convertVOItoMask()  
      void disposeLocal()
      dispose memory
      void init()
      Initial panel
      void loadFiles()
      load image files and voi files
      private void read_name​(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 runCED()  
      void saveHED2DsliceCED()  
      void saveImage​(ModelImage image, ModelImage imageMask, java.lang.String orientation)  
      void saveImages()
      Save the 2D slices and VOIs to user specified dir.
      void saveImagesTest()  
      void saveOrthogonalCEDImage()  
      private void savePNGfile​(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)  
      ModelImage scaleIntensity​(ModelImage image)  
      void transform()  
      private void traverse_folder​(java.io.File dir, java.lang.String hashID)  
      • 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.
      • 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.Hashtable<java.lang.String,​ModelImage> keyImages
        image vector to hold the actual images.
      • maskImages

        private java.util.Hashtable<java.lang.String,​ModelImage> maskImages
      • keyImagesCrop

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

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

        private java.util.Vector<ModelImage> keyImageVOIs
        voi vector to hold the actual vois.
      • 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
      • axialList

        private java.util.Hashtable<java.lang.String,​ModelImage> axialList
      • axialMaskList

        private java.util.Hashtable<java.lang.String,​ModelImage> axialMaskList
      • sagittalList

        private java.util.Hashtable<java.lang.String,​ModelImage> sagittalList
      • sagittalMaskList

        private java.util.Hashtable<java.lang.String,​ModelImage> sagittalMaskList
      • coronalList

        private java.util.Hashtable<java.lang.String,​ModelImage> coronalList
      • coronalMaskList

        private java.util.Hashtable<java.lang.String,​ModelImage> coronalMaskList
      • axial_index

        private int axial_index
      • sagittal_index

        private int sagittal_index
      • coronal_index

        private int coronal_index
      • cedTableAxial

        java.util.Hashtable<java.lang.String,​ModelImage> cedTableAxial
      • cedTableSagittal

        java.util.Hashtable<java.lang.String,​ModelImage> cedTableSagittal
      • cedTableCoronal

        java.util.Hashtable<java.lang.String,​ModelImage> cedTableCoronal
      • origTable

        java.util.Hashtable<java.lang.String,​java.lang.String> origTable
      • nameTable

        java.util.Hashtable<java.lang.String,​java.lang.String> nameTable
      • nameVOITable

        java.util.Hashtable<java.lang.String,​java.lang.String> nameVOITable
      • keyImagesTransform

        java.util.Hashtable<java.lang.String,​ModelImage> keyImagesTransform
      • keyImageMasksTransform

        java.util.Hashtable<java.lang.String,​ModelImage> keyImageMasksTransform
      • noCasesList

        private java.util.Vector<java.lang.String> noCasesList
        List of patients need work. 2966L 3225L 6205L 6909R 9717L 9808R 3022L 8868R 5733L 8121L 8136L 9808L 7654R (wrong fem VOI, it's FAT GRE VOI) 2911L (miss patella) 5271R (miss femur) 4983L (miss femur) 5026L (miss femur,need work) 9808R (miss femur) 1959L (femur VOI wrong)
    • Constructor Detail

      • Knees_90_data_train_extraction

        public Knees_90_data_train_extraction​(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

        private void traverse_folder​(java.io.File dir,
                                     java.lang.String hashID)
      • read_name

        private void read_name​(java.io.File dir)
      • 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.
      • transform

        public void transform()
      • convertVOItoMask

        public void convertVOItoMask()
      • saveOrthogonalCEDImage

        public void saveOrthogonalCEDImage()
      • runCED

        public void runCED()
      • saveHED2DsliceCED

        public void saveHED2DsliceCED()
      • saveImage

        public void saveImage​(ModelImage image,
                              ModelImage imageMask,
                              java.lang.String orientation)
      • calculateCoherenceEnhancingDiffusion

        private ModelImage calculateCoherenceEnhancingDiffusion​(ModelImage inImage)
      • conversion

        public void conversion()
      • saveImages

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

        public void saveImagesTest()
      • savePNGfile

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