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,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 JDialogProstateSPIEcancerChallenge extends JDialogBase implements AlgorithmInterface
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:
- 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 AlgorithmTransformalgoTransprivate intboxXmaxprivate intboxXminprivate intboxYmaxbounding box for crop the image.private intboxYminbounding box for crop the image.private javax.swing.JButtonbuttonSaveImage(package private) java.util.Hashtable<java.lang.Integer,ModelImage>cedTableprivate AlgorithmAddMarginscropAlgocrop margin algorithm.private java.util.Vector<ModelImage>cropKeyImagescropped key image vector.(package private) java.util.Hashtable<java.lang.Integer,ModelImage>cropTable(package private) java.util.Hashtable<java.lang.Integer,ModelImage>imageHashtable(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>imageNameHashtableprivate javax.swing.JPanelimageSelectionPanelprivate java.util.Vector<ModelImage>keyImagesimage vector to hold the actual images.private java.util.Vector<java.lang.String>keyImageVector1private javax.swing.JLabellabelSaveImagesaved 2D slices atlas dir.private javax.swing.JFileChoosersaveImageChooserprivate java.lang.StringsaveImageDirectory(package private) java.util.Hashtable<java.lang.Integer,ModelImage>scaleCedTable(package private) java.util.Hashtable<java.lang.Integer,ModelImage>scaleImageTable(package private) java.util.Hashtable<java.lang.Integer,ModelImage>scaleIntensityTable(package private) java.util.Hashtable<java.lang.Integer,ModelImage>scaleVoiTableprivate static longserialVersionUIDprivate javax.swing.JTextFieldtextFieldSaveImage(package private) java.util.Hashtable<java.lang.Integer,ModelImage>transformTableprivate ViewUserInterfaceUIThe main user interface.(package private) java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>voiNameHashtableprivate int[]xBoundsX cropped region bounds.private int[]yBoundsY cropped region bounds.private int[]zBoundsZ 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, 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 JDialogProstateSPIEcancerChallenge(java.awt.Frame theParentFrame)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.ActionEvent event)Dialog local actionPerformed handler.voidalgorithmPerformed(AlgorithmBase algorithm)This method is required if the AlgorithmPerformed interface is implemented.voidbuildKeyImagePanel()Panel contains both the 3D image dir and saved 2D slices atlas dir.private ModelImagecalculateCoherenceEnhancingDiffusion(ModelImage inImage)ModelImagecalculateTransform(ModelImage image)ModelImagecalculateTransform_dim_fixed(ModelImage image)ModelImagecalculateTransform_resol_fix(ModelImage image)voidcallAlgorithm()Driver function to read image and VOIs, and convert each 3D image to 2D slices.private ModelImagecropImage(ModelImage image)voidcropKeyImages()Crop key images.voidcrossValidationTest()voidcrossValidationTrain()static booleandeleteDir(java.io.File dir)Debugger to test dir deletion.voiddisposeLocal()dispose memoryvoiddisposeMemory()ModelImagehistoEqual(ModelImage image)voidinit()Initial panelvoidloadFiles()load image files and voi filesstatic voidpause()voidreadFile()private voidreadKeyImageDir()Read 3D images atlas directory.private voidrecordSaveImageDir()Let user specify the saved 2D slices atlas, record the save directory.voidrunCED()voidrunCrop()voidrunMask()voidrunScaleIntensity()voidrunTransform()voidsaveImages()voidsaveImages(int key, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.Integer,ModelImage> whichTable)voidsaveImagesTest(int key, int[] index, java.lang.String folderName)private voidsavePNGfile(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)voidsaveTestedImages()ModelImagescaleIntensity(ModelImage image)voidsmoothVOI60(ModelImage maskImage, ModelImage resultImage)Smooth VOIs to 60 points.private voidtraverse_DicomLayer(java.io.File lastLayer, java.lang.String hashID)private voidtraverse_firstLayer(java.io.File firstDir, java.lang.String child)private voidtraverse_Layer(java.io.File dir)private voidtraverse_scanLayer(java.io.File secondLayer, java.lang.String hashID)private voidtraverse_secondLayer(java.io.File firstLayer, java.lang.String hashID)private voidtraverse_T2Layer(java.io.File T2Layer, 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.
-
boxYmin
private int boxYmin
bounding box for crop the image. Currently set from 0 to 512, the orginal image slice size.
-
boxYmax
private int boxYmax
bounding 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[] xBounds
X cropped region bounds.
-
yBounds
private int[] yBounds
Y cropped region bounds.
-
zBounds
private int[] zBounds
Z cropped region bound.
-
cropAlgo
private AlgorithmAddMargins cropAlgo
crop margin algorithm.
-
imageSelectionPanel
private javax.swing.JPanel imageSelectionPanel
-
keyImages
private java.util.Vector<ModelImage> keyImages
image vector to hold the actual images.
-
keyImageVector1
private java.util.Vector<java.lang.String> keyImageVector1
-
cropKeyImages
private java.util.Vector<ModelImage> cropKeyImages
cropped key image vector.
-
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
-
voiNameHashtable
java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>> voiNameHashtable
-
imageHashtable
java.util.Hashtable<java.lang.Integer,ModelImage> imageHashtable
-
cedTable
java.util.Hashtable<java.lang.Integer,ModelImage> cedTable
-
scaleImageTable
java.util.Hashtable<java.lang.Integer,ModelImage> scaleImageTable
-
scaleIntensityTable
java.util.Hashtable<java.lang.Integer,ModelImage> scaleIntensityTable
-
scaleCedTable
java.util.Hashtable<java.lang.Integer,ModelImage> scaleCedTable
-
scaleVoiTable
java.util.Hashtable<java.lang.Integer,ModelImage> scaleVoiTable
-
transformTable
java.util.Hashtable<java.lang.Integer,ModelImage> transformTable
-
cropTable
java.util.Hashtable<java.lang.Integer,ModelImage> cropTable
-
algoTrans
private AlgorithmTransform algoTrans
-
-
Method Detail
-
disposeLocal
public void disposeLocal()
dispose memory
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
Dialog local actionPerformed handler.- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener- 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
private void traverse_Layer(java.io.File dir)
-
traverse_firstLayer
private void traverse_firstLayer(java.io.File firstDir, java.lang.String child)
-
traverse_secondLayer
private void traverse_secondLayer(java.io.File firstLayer, java.lang.String hashID)
-
traverse_scanLayer
private void traverse_scanLayer(java.io.File secondLayer, java.lang.String hashID)
-
traverse_T2Layer
private void traverse_T2Layer(java.io.File T2Layer, 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:
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
private ModelImage cropImage(ModelImage image)
-
runCED
public void runCED()
-
runMask
public void runMask()
-
runTransform
public void runTransform()
-
calculateTransform_dim_fixed
public ModelImage calculateTransform_dim_fixed(ModelImage image)
-
calculateTransform_resol_fix
public ModelImage calculateTransform_resol_fix(ModelImage image)
-
runScaleIntensity
public void runScaleIntensity()
-
histoEqual
public ModelImage histoEqual(ModelImage image)
-
scaleIntensity
public ModelImage scaleIntensity(ModelImage image)
-
calculateTransform
public ModelImage calculateTransform(ModelImage image)
-
calculateCoherenceEnhancingDiffusion
private ModelImage calculateCoherenceEnhancingDiffusion(ModelImage inImage)
-
saveTestedImages
public void saveTestedImages()
-
crossValidationTest
public void crossValidationTest()
-
crossValidationTrain
public void crossValidationTrain()
-
saveImages
public void saveImages()
-
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(int key, int[] index, java.lang.String folderName, java.util.Hashtable<java.lang.Integer,ModelImage> whichTable)
-
saveImagesTest
public void saveImagesTest(int key, int[] index, java.lang.String folderName)
-
smoothVOI60
public void smoothVOI60(ModelImage maskImage, ModelImage resultImage)
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
public static boolean deleteDir(java.io.File dir)
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.
-
-