Class JDialogPromise12Train3DCnns

All Implemented Interfaces:
AlgorithmInterface, DialogDefaultsInterface, ActionListener, FocusListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, 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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • UI

      private ViewUserInterface UI
      The main user interface.
    • labelKeyImage

      private JLabel labelKeyImage
      key image directory.
    • textFieldKeyImage

      private JTextField textFieldKeyImage
    • buttonKeyImage

      private JButton buttonKeyImage
    • imageSelectionPanel

      private JPanel imageSelectionPanel
    • keyImages

      private Vector<ModelImage> keyImages
      image vector to hold the actual images.
    • keyImagesCrop

      private Vector<ModelImage> keyImagesCrop
    • keyImagesScaleIntensity

      private Vector<ModelImage> keyImagesScaleIntensity
    • keyImagesMask

      private Vector<ModelImage> keyImagesMask
    • keyImageVector1

      private Vector<String> keyImageVector1
    • keyImageVector2

      private Vector<String> keyImageVector2
    • labelSaveImage

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

      private JTextField textFieldSaveImage
    • buttonSaveImage

      private JButton buttonSaveImage
    • saveImageChooser

      private JFileChooser saveImageChooser
    • saveImageDirectory

      private String saveImageDirectory
    • xRandom

      private RandomNumberGen xRandom
    • count

      int count
  • Constructor Details

    • JDialogPromise12Train3DCnns

      public JDialogPromise12Train3DCnns(Frame theParentFrame)
      Constructor.
      Parameters:
      theParentFrame -
  • Method Details

    • disposeLocal

      public void disposeLocal()
      dispose memory
    • actionPerformed

      public void actionPerformed(ActionEvent event)
      Dialog local actionPerformed handler.
      Specified by:
      actionPerformed in interface 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(File dir)
    • processDir_folder_1

      private void processDir_folder_1(File dir)
    • sortKeyImage_1

      public void sortKeyImage_1()
    • traverse_folder_2

      private void traverse_folder_2(File dir)
    • processDir_folder_2

      private void processDir_folder_2(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()
    • scaleIntensity

      public ModelImage scaleIntensity(ModelImage image)
    • cropImage_randomSample

      private void cropImage_randomSample(ModelImage image, ModelImage imageMask, int imageIndex, PrintWriter fileWriter)
    • findMaskExtents

      private int findMaskExtents(ModelImage maskImage)
    • cropImage_randomSample_voi_region

      private void cropImage_randomSample_voi_region(ModelImage image, ModelImage imageMask, int imageIndex, PrintWriter fileWriter)
    • cropImage_slidingWindow

      private void cropImage_slidingWindow(ModelImage image, ModelImage imageMask, int imageIndex, PrintWriter fileWriter)
    • writeAnalyze

      public 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, PrintWriter fileWriter)
    • saveImage

      public void saveImage(ModelImage image, String imgName, ModelImage mask, String maskName, String sliceDirTrainImage, String sliceDirTrainMask, String coordinate_label, PrintWriter fileWriter)
    • H5Write

      public void H5Write(ModelImage image, ModelImage mask) throws Exception
      Throws:
      Exception
    • TestH5WriteFloats

      public void TestH5WriteFloats(String filename) throws Exception
      Throws:
      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.