Class JDialogKnees_90_data_train_extraction
- 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.Knees.JDialogKnees_90_data_train_extraction
-
- 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 JDialogKnees_90_data_train_extraction extends JDialogBase implements AlgorithmInterface
This class converts the original knees MRI images into isotropic images. 1) Convert the VOIs into binary image masks. 2) Convert the original images into isotropic images 3) Convert the isotropic images from sagittal to axial; sagittal to coronal. 4) Along each orietation, generate the CED image in addition to MRI. 5) Save all the images (isotropic axial, sagittal, coronal images with corresponding binary masks).- 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 AlgorithmTransform
algoTrans
private int
axial_index
private java.util.Hashtable<java.lang.String,ModelImage>
axialList
private java.util.Hashtable<java.lang.String,ModelImage>
axialMaskList
private int
boxXmax
private int
boxXmin
private int
boxYmax
bounding box for crop the image.private int
boxYmin
bounding box for crop the image.private javax.swing.JButton
buttonKeyImage
private javax.swing.JButton
buttonSaveImage
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cedTableAxial
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cedTableCoronal
(package private) java.util.Hashtable<java.lang.String,ModelImage>
cedTableSagittal
private int
coronal_index
private java.util.Hashtable<java.lang.String,ModelImage>
coronalList
private java.util.Hashtable<java.lang.String,ModelImage>
coronalMaskList
private AlgorithmAddMargins
cropAlgo
crop margin algorithm.private java.util.Vector<ModelImage>
cropKeyImages
cropped key image vector.private javax.swing.JPanel
imageSelectionPanel
(package private) java.util.Hashtable<java.lang.String,ModelImage>
keyImageMasksTransform
private java.util.Hashtable<java.lang.String,ModelImage>
keyImages
image vector to hold the actual images.private java.util.Vector<ModelImage>
keyImagesCrop
private java.util.Vector<ModelImage>
keyImagesScaleIntensity
(package private) java.util.Hashtable<java.lang.String,ModelImage>
keyImagesTransform
private java.util.Vector<ModelImage>
keyImageVOIs
voi vector to hold the actual vois.private javax.swing.JLabel
labelKeyImage
key image directory.private javax.swing.JLabel
labelSaveImage
saved 2D slices atlas dir.private java.util.Hashtable<java.lang.String,ModelImage>
maskImages
(package private) java.util.Hashtable<java.lang.String,java.lang.String>
nameTable
(package private) java.util.Hashtable<java.lang.String,java.lang.String>
nameVOITable
private java.util.Vector<java.lang.String>
noCasesList
List of patients need work. 2966L 3225L 6205L 6909R 9717L 9808R 3022L 8868R 5733L 8121L 8136L 9808L 7654R (wrong fem VOI, it's FAT GRE VOI) 2911L (miss patella) 5271R (miss femur) 4983L (miss femur) 5026L (miss femur,need work) 9808R (miss femur) 1959L (femur VOI wrong)(package private) java.util.Hashtable<java.lang.String,java.lang.String>
origTable
private int
sagittal_index
private java.util.Hashtable<java.lang.String,ModelImage>
sagittalList
private java.util.Hashtable<java.lang.String,ModelImage>
sagittalMaskList
private javax.swing.JFileChooser
saveImageChooser
private java.lang.String
saveImageDirectory
private static long
serialVersionUID
private javax.swing.JTextField
textFieldKeyImage
private javax.swing.JTextField
textFieldSaveImage
private ViewUserInterface
UI
The main user interface.private int[]
xBounds
X cropped region bounds.private int[]
yBounds
Y cropped region bounds.private int[]
zBounds
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, 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 JDialogKnees_90_data_train_extraction(java.awt.Frame theParentFrame)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent event)
Dialog local actionPerformed handler.void
algorithmPerformed(AlgorithmBase algorithm)
This method is required if the AlgorithmPerformed interface is implemented.void
buildKeyImagePanel()
Panel contains both the 3D image dir and saved 2D slices atlas dir.private ModelImage
calculateCoherenceEnhancingDiffusion(ModelImage inImage)
ModelImage
calculateTransform(ModelImage keyImage)
void
callAlgorithm()
Driver function to read image and VOIs, and convert each 3D image to 2D slices.void
conversion()
void
convertVOItoMask()
void
disposeLocal()
dispose memoryvoid
init()
Initial panelvoid
loadFiles()
load image files and voi filesprivate void
read_name(java.io.File dir)
private void
read_name_patella(java.io.File dir)
void
readFile()
private void
readKeyImageDir()
Read 3D images atlas directory.private void
recordSaveImageDir()
Let user specify the saved 2D slices atlas, record the save directory.void
runCED()
void
saveHED2DsliceCED()
void
saveImage(ModelImage image, ModelImage imageMask, java.lang.String orientation)
void
saveImages()
Save the 2D slices and VOIs to user specified dir.void
saveImagesTest()
void
saveOrthogonalCEDImage()
private void
savePNGfile(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)
ModelImage
scaleIntensity(ModelImage image)
void
transform()
private void
traverse_folder_femur(java.io.File dir, java.lang.String hashID)
private void
traverse_folder_patella(java.io.File dir, 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.
-
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.Hashtable<java.lang.String,ModelImage> keyImages
image vector to hold the actual images.
-
maskImages
private java.util.Hashtable<java.lang.String,ModelImage> maskImages
-
keyImagesCrop
private java.util.Vector<ModelImage> keyImagesCrop
-
keyImagesScaleIntensity
private java.util.Vector<ModelImage> keyImagesScaleIntensity
-
keyImageVOIs
private java.util.Vector<ModelImage> keyImageVOIs
voi vector to hold the actual vois.
-
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
-
algoTrans
private AlgorithmTransform algoTrans
-
axialList
private java.util.Hashtable<java.lang.String,ModelImage> axialList
-
axialMaskList
private java.util.Hashtable<java.lang.String,ModelImage> axialMaskList
-
sagittalList
private java.util.Hashtable<java.lang.String,ModelImage> sagittalList
-
sagittalMaskList
private java.util.Hashtable<java.lang.String,ModelImage> sagittalMaskList
-
coronalList
private java.util.Hashtable<java.lang.String,ModelImage> coronalList
-
coronalMaskList
private java.util.Hashtable<java.lang.String,ModelImage> coronalMaskList
-
axial_index
private int axial_index
-
sagittal_index
private int sagittal_index
-
coronal_index
private int coronal_index
-
cedTableAxial
java.util.Hashtable<java.lang.String,ModelImage> cedTableAxial
-
cedTableSagittal
java.util.Hashtable<java.lang.String,ModelImage> cedTableSagittal
-
cedTableCoronal
java.util.Hashtable<java.lang.String,ModelImage> cedTableCoronal
-
origTable
java.util.Hashtable<java.lang.String,java.lang.String> origTable
-
nameTable
java.util.Hashtable<java.lang.String,java.lang.String> nameTable
-
nameVOITable
java.util.Hashtable<java.lang.String,java.lang.String> nameVOITable
-
keyImagesTransform
java.util.Hashtable<java.lang.String,ModelImage> keyImagesTransform
-
keyImageMasksTransform
java.util.Hashtable<java.lang.String,ModelImage> keyImageMasksTransform
-
noCasesList
private java.util.Vector<java.lang.String> noCasesList
List of patients need work. 2966L 3225L 6205L 6909R 9717L 9808R 3022L 8868R 5733L 8121L 8136L 9808L 7654R (wrong fem VOI, it's FAT GRE VOI) 2911L (miss patella) 5271R (miss femur) 4983L (miss femur) 5026L (miss femur,need work) 9808R (miss femur) 1959L (femur VOI wrong)
-
-
Method Detail
-
disposeLocal
public void disposeLocal()
dispose memory
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
Dialog local actionPerformed handler.- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in 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_folder_femur
private void traverse_folder_femur(java.io.File dir, java.lang.String hashID)
-
read_name
private void read_name(java.io.File dir)
-
traverse_folder_patella
private void traverse_folder_patella(java.io.File dir, java.lang.String hashID)
-
read_name_patella
private void read_name_patella(java.io.File dir)
-
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:
algorithmPerformed
in 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.
-
transform
public void transform()
-
convertVOItoMask
public void convertVOItoMask()
-
saveOrthogonalCEDImage
public void saveOrthogonalCEDImage()
-
runCED
public void runCED()
-
saveHED2DsliceCED
public void saveHED2DsliceCED()
-
saveImage
public void saveImage(ModelImage image, ModelImage imageMask, java.lang.String orientation)
-
calculateCoherenceEnhancingDiffusion
private ModelImage calculateCoherenceEnhancingDiffusion(ModelImage inImage)
-
conversion
public void conversion()
-
scaleIntensity
public ModelImage scaleIntensity(ModelImage image)
-
calculateTransform
public ModelImage calculateTransform(ModelImage keyImage)
-
saveImages
public void saveImages()
Save the 2D slices and VOIs to user specified dir.
-
saveImagesTest
public void saveImagesTest()
-
savePNGfile
private void savePNGfile(java.lang.String dirName, java.lang.String fileName, ModelImage srcImage, float minIntensity, float maxIntensity, int xDim, int yDim, boolean isMask)
-
loadFiles
public void loadFiles()
load image files and voi files
-
readFile
public void readFile()
-
init
public void init()
Initial panel
-
buildKeyImagePanel
public void buildKeyImagePanel()
Panel contains both the 3D image dir and saved 2D slices atlas dir.
-
-