Class JDialogPromise12Train3DCnns
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- javax.swing.JDialog
-
- gov.nih.mipav.view.dialogs.JDialogBase
-
- gov.nih.mipav.view.renderer.WildMagic.ProstateFramework.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 gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKAction
-
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
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.JButton
buttonKeyImage
private javax.swing.JButton
buttonSaveImage
(package private) int
count
private javax.swing.JPanel
imageSelectionPanel
private java.util.Vector<ModelImage>
keyImages
image vector to hold the actual images.private java.util.Vector<ModelImage>
keyImagesCrop
private java.util.Vector<ModelImage>
keyImagesMask
private java.util.Vector<ModelImage>
keyImagesScaleIntensity
private java.util.Vector<java.lang.String>
keyImageVector1
private java.util.Vector<java.lang.String>
keyImageVector2
private javax.swing.JLabel
labelKeyImage
key image directory.private javax.swing.JLabel
labelSaveImage
saved 2D slices atlas dir.private javax.swing.JFileChooser
saveImageChooser
private java.lang.String
saveImageDirectory
private static long
serialVersionUID
private javax.swing.JTextField
textFieldKeyImage
private javax.swing.JTextField
textFieldSaveImage
private ViewUserInterface
UI
The main user interface.private RandomNumberGen
xRandom
-
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogBase
applyButton, bar, cancelButton, cancelFlag, closeButton, HELP, helpButton, mainDialogPanel, NEW, OKButton, parentFrame, progressBar, REPLACE, runInSeparateThread, runningScriptFlag, runQuiet, serif12, serif12B, voiManager
-
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description JDialogPromise12Train3DCnns(java.awt.Frame theParentFrame)
Constructor.
-
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 memoryprivate int
findMaskExtents(ModelImage maskImage)
void
H5Write(ModelImage image, ModelImage mask)
void
init()
Initial panelvoid
loadFiles()
load image files and voi filesstatic 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 gov.nih.mipav.view.dialogs.JDialogBase
buildApplyButton, buildButtons, buildCancelButton, buildCancelButton, buildCloseButton, buildHelpButton, buildImageComboBox, buildOKButton, buildOKButton, buildOKCancelButtons, buildTitledBorder, buildTitledBorder, createLabel, createProgressBar, createProgressBar, createTextField, focusGained, focusLost, getDialogName, isCancelled, isQuietRunning, isRunInSeparateThread, isScriptRunning, itemStateChanged, loadDefaults, loadDefaults, makeImageName, makeString, openNewFrame, saveDefaults, saveDefaults, setLeftHandSystem, setQuietRunning, setScriptRunning, setSeparateThread, setVisible, setVisible, setVisibleMenuBar, setVisibleStandard, setVOIManager, setWCSystem, testParameter, testParameterMin, updateFFTFileInfo, updateFileInfo, updateFileInfoOtherModality, updateFileInfoStatic, updateFileInfoStatic, updateFileTypeInfo, updateFileTypeInfo, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
-
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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
UI
private ViewUserInterface UI
The main user interface.
-
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
-
xRandom
private RandomNumberGen xRandom
-
count
int count
-
-
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 interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in classJDialogBase
-
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 interfaceAlgorithmInterface
- 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, 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)
-
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, 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.
-
-