Class JDialogProstateSPIEcancerChallengeNIH_train_ced_ext
- 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.JDialogProstateSPIEcancerChallengeNIH_train_ced_ext
-
- 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 JDialogProstateSPIEcancerChallengeNIH_train_ced_ext extends JDialogBase implements AlgorithmInterface
The MICCAI ProstateX challenge is rolling over to prostate segmentation, which includes the whole prostate(wp) and central gland(cg). This is the first attempt to try the wp and cg segmentation. Combining the CED and MRI slices to train one HED deep learning model. This version is the one helps us to win MICCAI ProstateX 2017 challenge for the third place. I implemented this version a week before the challenge submission deadline. The training date includes NIH data + ProstateX training data. For the challenge, we apply this class to central gland segmentation for the challenge testing data. steps: 1) From MRI image, generates the binary mask images. 2) Normalize the MRI image slices within range [0, 1000]. 3) Generate the CED slices 3) save MRI and CED slices with corresponding binary masks in png format.- 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 AlgorithmTransform
algoTrans
private javax.swing.JButton
buttonKeyImage
private javax.swing.JButton
buttonSaveImage
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cedTable
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cedTable_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cropTable_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cropVoiTable_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
imageHashtableCg
(package private) java.util.Hashtable<java.lang.String,ModelImage>
imageHashtableCg_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
imageHashtableWp
(package private) java.util.Hashtable<java.lang.String,ModelImage>
imageHashtableWp_ext
(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>
imageNameHashtable
(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>
imageNameHashtable_ext
private javax.swing.JPanel
imageSelectionPanel
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
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleCedTable
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleCedTable_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleImageTable
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleImageTable_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleIntensityTable
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleIntensityTable_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleVoiTable
(package private) java.util.Hashtable<java.lang.String,ModelImage>
scaleVoiTable_ext
private static long
serialVersionUID
private javax.swing.JTextField
textFieldKeyImage
private javax.swing.JTextField
textFieldSaveImage
(package private) java.util.Hashtable<java.lang.String,ModelImage>
transformTable_ext
private ViewUserInterface
UI
The main user interface.(package private) java.util.Hashtable<java.lang.String,VOI>
voiHashtable
(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>
voiNameHashtableCg
(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>
voiNameHashtableCg_ext
(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>
voiNameHashtableWp
(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>
voiNameHashtableWp_ext
(package private) java.util.Hashtable<java.lang.String,ModelImage>
voiTable
(package private) java.util.Hashtable<java.lang.String,ModelImage>
voiTable_ext
-
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 JDialogProstateSPIEcancerChallengeNIH_train_ced_ext(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.private ModelImage
calculateCoherenceEnhancingDiffusion(ModelImage inImage)
ModelImage
calculateTransform(ModelImage image)
ModelImage
calculateTransform_resol_fix(ModelImage image)
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
disposeLocal()
dispose memoryvoid
disposeMemory()
ModelImage
histoEqual(ModelImage image)
void
init()
Initial panelvoid
loadFiles()
load image files and voi filesstatic void
pause()
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
runCED_ext()
void
runCrop_ext()
void
runMask()
void
runMask_ext()
void
runScaleIntensity()
void
runScaleIntensity_ext()
void
runTransform_ext()
void
saveImages(java.lang.String key, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.String,ModelImage> whichTable)
void
saveImages_ext(java.lang.String key, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.String,ModelImage> whichTable)
void
saveImagesTest(java.lang.String key, int[] index, java.lang.String folderName)
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)
ModelImage
scaleIntensity(ModelImage image)
void
train()
private void
traverse_DicomLayer(java.io.File lastLayer, java.lang.String hashID)
private void
traverse_firstLayer_noCoil(java.io.File firstDir, java.lang.String child)
private void
traverse_layer_modified(java.io.File dir)
private void
traverse_Layer_noCoil(java.io.File dir)
private void
traverse_secondLayer_noCoil(java.io.File firstLayer, java.lang.String hashID)
private void
traverse_secondLayer_noCoil_ext(java.io.File firstLayer, java.lang.String hashID)
-
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
-
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.Vector<java.lang.String>> imageNameHashtable
-
voiNameHashtableWp
java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>> voiNameHashtableWp
-
voiNameHashtableCg
java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>> voiNameHashtableCg
-
imageNameHashtable_ext
java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>> imageNameHashtable_ext
-
voiNameHashtableWp_ext
java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>> voiNameHashtableWp_ext
-
voiNameHashtableCg_ext
java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>> voiNameHashtableCg_ext
-
imageHashtableWp_ext
java.util.Hashtable<java.lang.String,ModelImage> imageHashtableWp_ext
-
imageHashtableCg_ext
java.util.Hashtable<java.lang.String,ModelImage> imageHashtableCg_ext
-
cedTable_ext
java.util.Hashtable<java.lang.String,ModelImage> cedTable_ext
-
voiTable_ext
java.util.Hashtable<java.lang.String,ModelImage> voiTable_ext
-
imageHashtableWp
java.util.Hashtable<java.lang.String,ModelImage> imageHashtableWp
-
imageHashtableCg
java.util.Hashtable<java.lang.String,ModelImage> imageHashtableCg
-
cedTable
java.util.Hashtable<java.lang.String,ModelImage> cedTable
-
voiTable
java.util.Hashtable<java.lang.String,ModelImage> voiTable
-
scaleImageTable
java.util.Hashtable<java.lang.String,ModelImage> scaleImageTable
-
scaleCedTable
java.util.Hashtable<java.lang.String,ModelImage> scaleCedTable
-
scaleVoiTable
java.util.Hashtable<java.lang.String,ModelImage> scaleVoiTable
-
scaleImageTable_ext
java.util.Hashtable<java.lang.String,ModelImage> scaleImageTable_ext
-
scaleIntensityTable_ext
java.util.Hashtable<java.lang.String,ModelImage> scaleIntensityTable_ext
-
scaleCedTable_ext
java.util.Hashtable<java.lang.String,ModelImage> scaleCedTable_ext
-
scaleVoiTable_ext
java.util.Hashtable<java.lang.String,ModelImage> scaleVoiTable_ext
-
transformTable_ext
java.util.Hashtable<java.lang.String,ModelImage> transformTable_ext
-
voiHashtable
java.util.Hashtable<java.lang.String,VOI> voiHashtable
-
cropTable_ext
java.util.Hashtable<java.lang.String,ModelImage> cropTable_ext
-
cropVoiTable_ext
java.util.Hashtable<java.lang.String,ModelImage> cropVoiTable_ext
-
algoTrans
private AlgorithmTransform algoTrans
-
scaleIntensityTable
java.util.Hashtable<java.lang.String,ModelImage> scaleIntensityTable
-
-
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_layer_modified
private void traverse_layer_modified(java.io.File dir)
-
traverse_Layer_noCoil
private void traverse_Layer_noCoil(java.io.File dir)
-
traverse_firstLayer_noCoil
private void traverse_firstLayer_noCoil(java.io.File firstDir, java.lang.String child)
-
traverse_secondLayer_noCoil_ext
private void traverse_secondLayer_noCoil_ext(java.io.File firstLayer, java.lang.String hashID)
-
traverse_secondLayer_noCoil
private void traverse_secondLayer_noCoil(java.io.File firstLayer, java.lang.String hashID)
-
traverse_DicomLayer
private void traverse_DicomLayer(java.io.File lastLayer, 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 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.
-
disposeMemory
public void disposeMemory()
-
runTransform_ext
public void runTransform_ext()
-
runCrop_ext
public void runCrop_ext()
-
runScaleIntensity_ext
public void runScaleIntensity_ext()
-
runCED_ext
public void runCED_ext()
-
runScaleIntensity
public void runScaleIntensity()
-
histoEqual
public ModelImage histoEqual(ModelImage image)
-
scaleIntensity
public ModelImage scaleIntensity(ModelImage image)
-
runMask
public void runMask()
-
runMask_ext
public void runMask_ext()
-
runCED
public void runCED()
-
calculateTransform
public ModelImage calculateTransform(ModelImage image)
-
calculateCoherenceEnhancingDiffusion
private ModelImage calculateCoherenceEnhancingDiffusion(ModelImage inImage)
-
train
public void train()
-
savePNGfile
private void savePNGfile(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)
-
saveImages
public void saveImages(java.lang.String key, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.String,ModelImage> whichTable)
-
saveImages_ext
public void saveImages_ext(java.lang.String key, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.String,ModelImage> whichTable)
-
loadFiles
public void loadFiles()
load image files and voi files
-
readFile
public void readFile()
-
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.
-
calculateTransform_resol_fix
public ModelImage calculateTransform_resol_fix(ModelImage image)
-
cropImage
private ModelImage cropImage(ModelImage image)
-
cropImage_ext
private ModelImage cropImage_ext(ModelImage image)
-
saveImagesTest
public void saveImagesTest(java.lang.String key, int[] index, java.lang.String folderName)
-
savePNGfile
private void savePNGfile(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, boolean isMask)
-
-