Class JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest
- 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.JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest
-
- 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 JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest extends JDialogBase implements AlgorithmInterface
This class convert the 3D images to 2D slices based atlas. Users specify the 3D prostate images dir, and output 2D slices based dir, the algorithm auto convert each 3D image to 2D slices with corresponding VOIs. Each saved VOIs is 2-contour based VOI, which is used to build the Active Appearance Model (AAM).- 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 javax.swing.JButtonbuttonKeyImageprivate javax.swing.JButtonbuttonSaveImageprivate java.util.Vector<ModelImage>cropKeyImagescropped key image vector.(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,ModelImage>>imageHashtableExtra(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>>imageNameHashtable(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>>imageNameHashtableExtraprivate javax.swing.JPanelimageSelectionPanelprivate java.util.Vector<ModelImage>keyImagesimage vector to hold the actual images.private java.util.Vector<java.lang.String>keyImageVector1private java.util.Vector<java.lang.String>keyImageVector2private java.util.Vector<java.lang.String>keyImageVector3private java.util.Vector<java.lang.String>keyImageVector4private java.util.Vector<java.lang.String>keyImageVector5private java.util.Vector<VOI[]>keyImageVOIsvoi vector to hold the actual vois.private java.util.Vector<java.lang.String>keyImageVOIVector1private java.util.Vector<java.lang.String>keyImageVOIVector2private java.util.Vector<java.lang.String>keyImageVOIVector3private java.util.Vector<java.lang.String>keyImageVOIVector4private java.util.Vector<java.lang.String>keyImageVOIVector5private javax.swing.JLabellabelKeyImagekey image directory.private javax.swing.JLabellabelSaveImagesaved 2D slices atlas dir.(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,ModelImage>>origImageTable(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.lang.String>>origImageTableName(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.lang.String>>origVOITableNameprivate javax.swing.JFileChoosersaveImageChooserprivate java.lang.StringsaveImageDirectoryprivate static longserialVersionUID(package private) java.util.Hashtable<java.lang.String,java.util.Vector<ModelImage>>srcImageTable(package private) java.util.Hashtable<java.lang.String,java.util.Vector<VOI>>srcVOITableprivate javax.swing.JTextFieldtextFieldKeyImageprivate javax.swing.JTextFieldtextFieldSaveImageprivate ViewUserInterfaceUIThe main user interface.(package private) java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.lang.String>>voiNameHashtable-
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 JDialogProstate2DSlicesAtlasPngConverter3DSurfaceTrainAndTest(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.voidcallAlgorithm()Driver function to read image and VOIs, and convert each 3D image to 2D slices.voidcrossValidationTest()voidcrossValidationTestExtra()voidcrossValidationTrain()voiddisposeLocal()dispose memoryvoidinit()Initial panelvoidloadFiles()load image files and voi filesprivate voidloadSTLBinaryMesh(java.io.File file, ModelImage kImage, int imageOrientation)private voidloadSTLBinaryMesh(java.io.File file, ModelImage kImage, int imageOrientation, java.lang.String hashID)static voidpause()private voidprintTable()voidreadFile()voidreadImages()voidreadImagesExra()private voidreadKeyImageDir()Read 3D images atlas directory.private voidreadSTLBinary(java.io.FileInputStream data, ModelImage kImage, int imageOrientation)private voidreadSTLBinary(java.io.FileInputStream data, ModelImage kImage, int imageOrientation, java.lang.String hashID)private voidrecordSaveImageDir()Let user specify the saved 2D slices atlas, record the save directory.voidsaveImages(ModelImage image, int[] index, java.lang.String folderName, java.lang.String orientation)voidsaveImagesTest(ModelImage cropKeyImage, java.lang.String pid, 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()voidsmoothVOI60(ModelImage maskImage, ModelImage resultImage)Smooth VOIs to 60 points.private voidtraverse_date(java.io.File dir, java.lang.String patientID, java.lang.String date)private voidtraverse_dicom(java.io.File dir, java.lang.String hashID, java.lang.String orientation)private voidtraverse_firstLayer(java.io.File firstDir, java.lang.String child)private voidtraverse_Layer(java.io.File dir)private voidtraverse_Layer_extra(java.io.File dir)private voidtraverse_orientation(java.io.File dir, java.lang.String hashID)private voidtraverse_patientID(java.io.File dir, java.lang.String patientID)private voidtraverse_secondLayer(java.io.File firstLayer, java.lang.String hashID)private voidtraverse_serial(java.io.File dir, java.lang.String hashID, java.lang.String orientation)-
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
-
keyImages
private java.util.Vector<ModelImage> keyImages
image vector to hold the actual images.
-
keyImageVOIs
private java.util.Vector<VOI[]> keyImageVOIs
voi vector to hold the actual vois.
-
keyImageVector1
private java.util.Vector<java.lang.String> keyImageVector1
-
keyImageVOIVector1
private java.util.Vector<java.lang.String> keyImageVOIVector1
-
keyImageVector2
private java.util.Vector<java.lang.String> keyImageVector2
-
keyImageVOIVector2
private java.util.Vector<java.lang.String> keyImageVOIVector2
-
keyImageVector3
private java.util.Vector<java.lang.String> keyImageVector3
-
keyImageVOIVector3
private java.util.Vector<java.lang.String> keyImageVOIVector3
-
keyImageVector4
private java.util.Vector<java.lang.String> keyImageVector4
-
keyImageVOIVector4
private java.util.Vector<java.lang.String> keyImageVOIVector4
-
keyImageVector5
private java.util.Vector<java.lang.String> keyImageVector5
-
keyImageVOIVector5
private java.util.Vector<java.lang.String> keyImageVOIVector5
-
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.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>> imageNameHashtable
-
voiNameHashtable
java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.lang.String>> voiNameHashtable
-
srcImageTable
java.util.Hashtable<java.lang.String,java.util.Vector<ModelImage>> srcImageTable
-
srcVOITable
java.util.Hashtable<java.lang.String,java.util.Vector<VOI>> srcVOITable
-
origImageTable
java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,ModelImage>> origImageTable
-
origImageTableName
java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.lang.String>> origImageTableName
-
origVOITableName
java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.lang.String>> origVOITableName
-
imageNameHashtableExtra
java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,java.util.Vector<java.lang.String>>> imageNameHashtableExtra
-
imageHashtableExtra
java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.String,ModelImage>> imageHashtableExtra
-
-
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_extra
private void traverse_Layer_extra(java.io.File dir)
-
traverse_patientID
private void traverse_patientID(java.io.File dir, java.lang.String patientID)
-
traverse_date
private void traverse_date(java.io.File dir, java.lang.String patientID, java.lang.String date)
-
traverse_orientation
private void traverse_orientation(java.io.File dir, java.lang.String hashID)
-
traverse_serial
private void traverse_serial(java.io.File dir, java.lang.String hashID, java.lang.String orientation)
-
traverse_dicom
private void traverse_dicom(java.io.File dir, java.lang.String hashID, java.lang.String orientation)
-
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)
-
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.
-
saveTestedImages
public void saveTestedImages()
-
crossValidationTestExtra
public void crossValidationTestExtra()
-
crossValidationTrain
public void crossValidationTrain()
-
crossValidationTest
public void crossValidationTest()
-
printTable
private void printTable()
-
readImagesExra
public void readImagesExra()
-
readImages
public void readImages()
-
saveImages
public void saveImages(ModelImage image, int[] index, java.lang.String folderName, java.lang.String orientation)
-
saveImagesTest
public void saveImagesTest(ModelImage cropKeyImage, java.lang.String pid, java.lang.String folderName)
-
savePNGfile
private void savePNGfile(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)
-
smoothVOI60
public void smoothVOI60(ModelImage maskImage, ModelImage resultImage)
Smooth VOIs to 60 points.- Parameters:
maskImage-resultImage-
-
loadFiles
public void loadFiles()
load image files and voi files
-
readFile
public void readFile()
-
loadSTLBinaryMesh
private void loadSTLBinaryMesh(java.io.File file, ModelImage kImage, int imageOrientation)
-
loadSTLBinaryMesh
private void loadSTLBinaryMesh(java.io.File file, ModelImage kImage, int imageOrientation, java.lang.String hashID)
-
readSTLBinary
private void readSTLBinary(java.io.FileInputStream data, ModelImage kImage, int imageOrientation) throws java.io.IOException- Throws:
java.io.IOException
-
readSTLBinary
private void readSTLBinary(java.io.FileInputStream data, ModelImage kImage, int imageOrientation, java.lang.String hashID) throws java.io.IOException- Throws:
java.io.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.
-
-