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,ActionListener,FocusListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,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:
-
Nested Class Summary
Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKActionNested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialogNested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityTypeNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate AlgorithmTransformprivate JButtonprivate JButton(package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> private JPanelprivate JLabelkey image directory.private JLabelsaved 2D slices atlas dir.private JFileChooserprivate String(package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> private static final longprivate JTextFieldprivate JTextField(package private) Hashtable<String, ModelImage> private ViewUserInterfaceThe main user interface.(package private) Hashtable<String, ModelImage> (package private) Hashtable<String, ModelImage> 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, voiManagerFields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPEFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionJDialogProstateSPIEcancerChallengeNIH_train_ced_ext(Frame theParentFrame) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidactionPerformed(ActionEvent event) Dialog local actionPerformed handler.voidalgorithmPerformed(AlgorithmBase algorithm) This method is required if the AlgorithmPerformed interface is implemented.voidPanel contains both the 3D image dir and saved 2D slices atlas dir.private ModelImagecalculateTransform(ModelImage image) voidDriver function to read image and VOIs, and convert each 3D image to 2D slices.private ModelImagecropImage(ModelImage image) private ModelImagecropImage_ext(ModelImage image) voiddispose memoryvoidhistoEqual(ModelImage image) voidinit()Initial panelvoidload image files and voi filesstatic voidpause()voidreadFile()private voidRead 3D images atlas directory.private voidLet user specify the saved 2D slices atlas, record the save directory.voidrunCED()voidvoidvoidrunMask()voidvoidvoidvoidvoidsaveImages(String key, int[] index, String folderName, Hashtable<String, ModelImage> whichTable) voidsaveImages_ext(String key, int[] index, String folderName, Hashtable<String, ModelImage> whichTable) voidsaveImagesTest(String key, int[] index, String folderName) private voidsavePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, boolean isMask) private voidsavePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask) scaleIntensity(ModelImage image) voidtrain()private voidtraverse_DicomLayer(File lastLayer, String hashID) private voidtraverse_firstLayer_noCoil(File firstDir, String child) private voidprivate voidprivate voidtraverse_secondLayer_noCoil(File firstLayer, String hashID) private voidtraverse_secondLayer_noCoil_ext(File firstLayer, 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, windowOpenedMethods 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, updateMethods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBackMethods 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, toFrontMethods 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, validateTreeMethods 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 Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
UI
The main user interface. -
labelKeyImage
key image directory. -
textFieldKeyImage
-
buttonKeyImage
-
imageSelectionPanel
-
labelSaveImage
saved 2D slices atlas dir. -
textFieldSaveImage
-
buttonSaveImage
-
saveImageChooser
-
saveImageDirectory
-
imageNameHashtable
-
voiNameHashtableWp
-
voiNameHashtableCg
-
imageNameHashtable_ext
-
voiNameHashtableWp_ext
-
voiNameHashtableCg_ext
-
imageHashtableWp_ext
Hashtable<String,ModelImage> imageHashtableWp_ext -
imageHashtableCg_ext
Hashtable<String,ModelImage> imageHashtableCg_ext -
cedTable_ext
Hashtable<String,ModelImage> cedTable_ext -
voiTable_ext
Hashtable<String,ModelImage> voiTable_ext -
imageHashtableWp
Hashtable<String,ModelImage> imageHashtableWp -
imageHashtableCg
Hashtable<String,ModelImage> imageHashtableCg -
cedTable
Hashtable<String,ModelImage> cedTable -
voiTable
Hashtable<String,ModelImage> voiTable -
scaleImageTable
Hashtable<String,ModelImage> scaleImageTable -
scaleCedTable
Hashtable<String,ModelImage> scaleCedTable -
scaleVoiTable
Hashtable<String,ModelImage> scaleVoiTable -
scaleImageTable_ext
Hashtable<String,ModelImage> scaleImageTable_ext -
scaleIntensityTable_ext
Hashtable<String,ModelImage> scaleIntensityTable_ext -
scaleCedTable_ext
Hashtable<String,ModelImage> scaleCedTable_ext -
scaleVoiTable_ext
Hashtable<String,ModelImage> scaleVoiTable_ext -
transformTable_ext
Hashtable<String,ModelImage> transformTable_ext -
voiHashtable
-
cropTable_ext
Hashtable<String,ModelImage> cropTable_ext -
cropVoiTable_ext
Hashtable<String,ModelImage> cropVoiTable_ext -
algoTrans
-
scaleIntensityTable
Hashtable<String,ModelImage> scaleIntensityTable
-
-
Constructor Details
-
JDialogProstateSPIEcancerChallengeNIH_train_ced_ext
Constructor.- Parameters:
theParentFrame-
-
-
Method Details
-
disposeLocal
public void disposeLocal()dispose memory -
actionPerformed
Dialog local actionPerformed handler.- Specified by:
actionPerformedin interfaceActionListener- Overrides:
actionPerformedin 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
-
traverse_Layer_noCoil
-
traverse_firstLayer_noCoil
-
traverse_secondLayer_noCoil_ext
-
traverse_secondLayer_noCoil
-
traverse_DicomLayer
-
algorithmPerformed
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:
algorithmPerformedin 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
-
scaleIntensity
-
runMask
public void runMask() -
runMask_ext
public void runMask_ext() -
runCED
public void runCED() -
calculateTransform
-
calculateCoherenceEnhancingDiffusion
-
train
public void train() -
savePNGfile
private void savePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask) -
saveImages
public void saveImages(String key, int[] index, String folderName, Hashtable<String, ModelImage> whichTable) -
saveImages_ext
public void saveImages_ext(String key, int[] index, String folderName, Hashtable<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
-
cropImage
-
cropImage_ext
-
saveImagesTest
-
savePNGfile
private void savePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, boolean isMask)
-