Class JDialogProstate2DSlicesAtlasPngConverter3DSurface
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.JDialogProstate2DSlicesAtlasPngConverter3DSurface
- All Implemented Interfaces:
AlgorithmInterface,DialogDefaultsInterface,ActionListener,FocusListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
public class JDialogProstate2DSlicesAtlasPngConverter3DSurface
extends JDialogBase
implements AlgorithmInterface
For ISBI 2017 paper:
Data given: Dr. Choyke's group gave us the 3D prostate MRI data ( axial, sagittal, coronal images with corresponding
3D stl prostate surfaces. No, ground truth VOIs were given.
This class reads the images and stl surfaces, converts 3D surface to VOI contours.
And save axial, sagittal, coronal VOIs with corresponding image in .xml file 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 JButtonprivate JButton(package private) Hashtable<String, Hashtable<String, ModelImage>> private JPanelprivate JLabelkey image directory.private JLabelsaved 2D slices atlas dir.(package private) Hashtable<String, Hashtable<String, ModelImage>> private JFileChooserprivate Stringprivate static final long(package private) Hashtable<String, Vector<ModelImage>> private JTextFieldprivate JTextFieldprivate ViewUserInterfaceThe main user interface.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
ConstructorsConstructorDescriptionJDialogProstate2DSlicesAtlasPngConverter3DSurface(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.voidDriver function to read image and VOIs, and convert each 3D image to 2D slices.voidvoiddispose memoryvoidinit()Initial panelvoidload image files and voi filesprivate voidloadSTLBinaryMesh(File file, ModelImage kImage, int imageOrientation) private voidloadSTLBinaryMesh(File file, ModelImage kImage, int imageOrientation, String hashID) static voidpause()voidreadFile()private voidRead 3D images atlas directory.private voidreadSTLBinary(FileInputStream data, ModelImage kImage, int imageOrientation) private voidreadSTLBinary(FileInputStream data, ModelImage kImage, int imageOrientation, String hashID) This method read the STL surface file, convert the 3D surface into VOI contours.private voidLet user specify the saved 2D slices atlas, record the save directory.voidvoidsaveImages(ModelImage image, int[] index, String folderName, String orientation) voidsaveImagesTest(String key, int[] index, String folderName) private voidsavePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask) voidsmoothVOI60(ModelImage maskImage, ModelImage resultImage) Smooth VOIs to 60 points.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, String orientationLabel) private voidtraverse_T2Layer_deeper(File T2Layer, String hashID, String orientationLabel) private voidtraverse_voiLayer(File secondLayer, 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
-
voiNameHashtable
-
imageHashtable
Hashtable<String,Hashtable<String, imageHashtableModelImage>> -
voiHashtable
-
srcImageTable
Hashtable<String,Vector<ModelImage>> srcImageTable -
srcVOITable
-
origImageTable
Hashtable<String,Hashtable<String, origImageTableModelImage>> -
dicomTable
-
voiTable
-
-
Constructor Details
-
JDialogProstate2DSlicesAtlasPngConverter3DSurface
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_T2Layer_deeper
-
traverse_voiLayer
-
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. -
saveGroundTruth
public void saveGroundTruth() -
crossValidationTrain
public void crossValidationTrain() -
saveImages
-
saveImagesTest
-
savePNGfile
private void savePNGfile(String dirName, String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask) -
smoothVOI60
Smooth VOIs to 60 points.- Parameters:
maskImage-resultImage-
-
loadFiles
public void loadFiles()load image files and voi files -
readFile
public void readFile() -
loadSTLBinaryMesh
-
loadSTLBinaryMesh
-
readSTLBinary
private void readSTLBinary(FileInputStream data, ModelImage kImage, int imageOrientation) throws IOException - Throws:
IOException
-
readSTLBinary
private void readSTLBinary(FileInputStream data, ModelImage kImage, int imageOrientation, String hashID) throws IOException This method read the STL surface file, convert the 3D surface into VOI contours.- Parameters:
data-kImage-imageOrientation-hashID-- Throws:
IOException
-
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.
-