Class JDialogProstateSPIEcancerChallenge
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.JDialogProstateSPIEcancerChallenge
- All Implemented Interfaces:
AlgorithmInterface,DialogDefaultsInterface,ActionListener,FocusListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
This class is for ProstateX 2017 MICCAI challenge. We use NIH data to train
the HED model. Both MRI and CED (png) slices generated from the axial NIH data
will be used to train the deep learning model. This class are the basic image
processing and extraction steps for preprocessing. This class is used for MICCAI
prostateX 2017 challenge test cases. IMPORTANT!!!
Steps:
1) transform the image to x, y isotropic resolution images
2) Crop the center part with 25% deduction from each image boundary
3) Normalized the image intensity in range [0, 1000]
4) Run Coherence Enhance Diffusion (CED) against the MRI image to enhance the boundary.
5) Extract MRI, CED slice with corresponding binary masks, saving them in 2D PNG files.
- 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 intprivate intprivate intbounding box for crop the image.private intbounding box for crop the image.private JButton(package private) Hashtable<Integer, ModelImage> private AlgorithmAddMarginscrop margin algorithm.private Vector<ModelImage> cropped key image vector.(package private) Hashtable<Integer, ModelImage> (package private) Hashtable<Integer, ModelImage> private JPanelprivate Vector<ModelImage> image vector to hold the actual images.private JLabelsaved 2D slices atlas dir.private JFileChooserprivate String(package private) Hashtable<Integer, ModelImage> (package private) Hashtable<Integer, ModelImage> (package private) Hashtable<Integer, ModelImage> (package private) Hashtable<Integer, ModelImage> private static final longprivate JTextField(package private) Hashtable<Integer, ModelImage> private ViewUserInterfaceThe main user interface.private int[]X cropped region bounds.private int[]Y cropped region bounds.private int[]Z cropped region bound.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
Constructors -
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) voidCrop key images.voidvoidstatic booleanDebugger to test dir deletion.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()voidrunCrop()voidrunMask()voidvoidvoidvoidsaveImages(int key, int[] index, String folderName, Hashtable<Integer, ModelImage> whichTable) voidsaveImagesTest(int key, int[] index, String folderName) private voidsavePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask) voidscaleIntensity(ModelImage image) voidsmoothVOI60(ModelImage maskImage, ModelImage resultImage) Smooth VOIs to 60 points.private voidtraverse_DicomLayer(File lastLayer, String hashID) private voidtraverse_firstLayer(File firstDir, String child) private voidtraverse_Layer(File dir) private voidtraverse_scanLayer(File secondLayer, String hashID) private voidtraverse_secondLayer(File firstLayer, String hashID) private voidtraverse_T2Layer(File T2Layer, 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. -
boxYmin
private int boxYminbounding box for crop the image. Currently set from 0 to 512, the orginal image slice size. -
boxYmax
private int boxYmaxbounding 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[] xBoundsX cropped region bounds. -
yBounds
private int[] yBoundsY cropped region bounds. -
zBounds
private int[] zBoundsZ cropped region bound. -
cropAlgo
crop margin algorithm. -
imageSelectionPanel
-
keyImages
image vector to hold the actual images. -
keyImageVector1
-
cropKeyImages
cropped key image vector. -
labelSaveImage
saved 2D slices atlas dir. -
textFieldSaveImage
-
buttonSaveImage
-
saveImageChooser
-
saveImageDirectory
-
imageNameHashtable
-
voiNameHashtable
-
imageHashtable
Hashtable<Integer,ModelImage> imageHashtable -
cedTable
Hashtable<Integer,ModelImage> cedTable -
scaleImageTable
Hashtable<Integer,ModelImage> scaleImageTable -
scaleIntensityTable
Hashtable<Integer,ModelImage> scaleIntensityTable -
scaleCedTable
Hashtable<Integer,ModelImage> scaleCedTable -
scaleVoiTable
Hashtable<Integer,ModelImage> scaleVoiTable -
transformTable
Hashtable<Integer,ModelImage> transformTable -
cropTable
Hashtable<Integer,ModelImage> cropTable -
algoTrans
-
-
Constructor Details
-
JDialogProstateSPIEcancerChallenge
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
-
traverse_firstLayer
-
traverse_secondLayer
-
traverse_scanLayer
-
traverse_T2Layer
-
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() -
runCrop
public void runCrop() -
cropImage
-
runCED
public void runCED() -
runMask
public void runMask() -
runTransform
public void runTransform() -
calculateTransform_dim_fixed
-
calculateTransform_resol_fix
-
runScaleIntensity
public void runScaleIntensity() -
histoEqual
-
scaleIntensity
-
calculateTransform
-
calculateCoherenceEnhancingDiffusion
-
saveTestedImages
public void saveTestedImages() -
crossValidationTest
public void crossValidationTest() -
crossValidationTrain
public void crossValidationTrain() -
saveImages
public void saveImages() -
savePNGfile
private void savePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask) -
saveImages
public void saveImages(int key, int[] index, String folderName, Hashtable<Integer, ModelImage> whichTable) -
saveImagesTest
-
smoothVOI60
Smooth VOIs to 60 points.- Parameters:
maskImage-resultImage-
-
cropKeyImages
public void cropKeyImages()Crop key images. -
loadFiles
public void loadFiles()load image files and voi files -
deleteDir
Debugger to test dir deletion.- Parameters:
dir-- Returns:
-
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.
-