Class JDialogProstateImageCategorize
- 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.JDialogProstateImageCategorize
-
- 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 JDialogProstateImageCategorize extends JDialogBase implements AlgorithmInterface
This class exhaustively trains the 2D slices based Active Appearance Model (AAM). For example, 100 3D prostate MRI images are converted to 2D slices atlas, each slice saved directory contains 100 2D slice images and corresponding VOIs. Based on the 2D slices and VOIs, this class performs shape based similarity measure between closed shape VOIs, sub-groups the image and VOIs, then apply the AAM training to each sub-group to generate the AAM model. The exhaustive search algorithm subdivides the atlas into smaller groups with a similar shape measure. After forming the smaller group, the search algorithm marks the relevant images and VOIs as visited, and iteratively searches the data in the atlas, terminating when no more similarity shapes can be found. AAM training follow the work of Stegmann et al. Cootes. et al. to create AAM model. M. B. Stegmann, B. K. Ersboll, and R. Larsen, "FAME-A Flexible Appearance Modeling Environment", IEEE Trans. Med. Imag., 22(10):1319-1331, October, 2003. T. F. Cootes, G. J. Edwards, and C. J. Taylor, "Active appearance models", Proc. Eur. Conf. Comput. Vis. 2:484-498, 1998.- Author:
- Ruida Cheng
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classJDialogProstateImageCategorize.perImageCostNMI based image similarity measure cost class.(package private) classJDialogProstateImageCategorize.perShapeCostShape similarity measure cost class.-
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 static intAxialaxis orietation.private intaxisprivate javax.swing.JComboBoxaxisListaxis regionprivate javax.swing.JButtonbuttonGroupprivate javax.swing.JButtonbuttonKeyImageprivate javax.swing.JPanelbuttonPanelprivate static intCoronalprivate javax.swing.JFileChoosergroupChoosergroup variables.private java.lang.StringgroupDirectoryprivate intgroupIndexgroup index.private java.lang.StringgroupNameprivate javax.swing.JPanelimageSelectionPanelprivate java.util.Vector<java.lang.String>imageVectorimage and voi string vector.private java.util.Vector<VOI[]>imageVOIsVOI vector.private javax.swing.JFileChooserkeyImageChooserkey images variables.private java.lang.StringkeyImageDirectoryprivate java.lang.StringkeyImageNameprivate javax.swing.JLabellabelAxisprivate javax.swing.JLabellabelGroupSave group directory.private javax.swing.JLabellabelKeyImageKey image related variables.private static intSaggitalprivate static longserialVersionUIDprivate java.util.Vector<ModelImage>sliceImagesimage vector.private javax.swing.JTextFieldtextFieldGroupprivate javax.swing.JTextFieldtextFieldKeyImageprivate ViewUserInterfaceUIThe main user interface.private java.util.Vector<java.lang.String>voiVector-
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 JDialogProstateImageCategorize(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)ActionPerformed handler.voidalgorithmPerformed(AlgorithmBase algorithm)empty function to implement the algorithm interface.private floatarea(float[] xPts, float[] yPts, int nPts)Shape area computationprivate voidcategorizeByShape()Shape based similarity measure.private voidcategorizeByTexture()Texture bases similarity measure.private voidcounterClockwise(float[] x, float[] y, float[] z, int nPts)private voidgroupImages()Group images and exhaustively train the AAM model.voidinit()Dialog GUI interface initialization.static voidpause()Pauses the display until the user hits enter.private voidprocessDir(java.io.File dir)Process the directory.private voidreadImagesAndVOIs()Read image and corresponding VOI.private voidreadImagesAndVOIsFromMid()Read image and VOIs start from the mid slice.private voidreadImagesAndVOIsInReverse()Read image and VOI in reverse order.private voidreadKeyImageDir()Read the key image director and generate image name and voi name vectors.private voidselectGroupDir()Let user choose the Group trained model directory to save.private voidsortImageVectorString(java.util.Vector<java.lang.String> imageVector)Sort image vector in ascending order.private voidsortVOIVectorString(java.util.Vector<java.lang.String> voiVector)Sort VOI name vector in ascending order.-
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.
-
imageSelectionPanel
private javax.swing.JPanel imageSelectionPanel
-
buttonPanel
private javax.swing.JPanel buttonPanel
-
axisList
private javax.swing.JComboBox axisList
axis region
-
labelAxis
private javax.swing.JLabel labelAxis
-
Axial
private static int Axial
axis orietation.
-
Saggital
private static int Saggital
-
Coronal
private static int Coronal
-
axis
private int axis
-
labelKeyImage
private javax.swing.JLabel labelKeyImage
Key image related variables.
-
textFieldKeyImage
private javax.swing.JTextField textFieldKeyImage
-
buttonKeyImage
private javax.swing.JButton buttonKeyImage
-
labelGroup
private javax.swing.JLabel labelGroup
Save group directory.
-
textFieldGroup
private javax.swing.JTextField textFieldGroup
-
buttonGroup
private javax.swing.JButton buttonGroup
-
keyImageChooser
private javax.swing.JFileChooser keyImageChooser
key images variables.
-
keyImageName
private java.lang.String keyImageName
-
keyImageDirectory
private java.lang.String keyImageDirectory
-
imageVector
private java.util.Vector<java.lang.String> imageVector
image and voi string vector.
-
voiVector
private java.util.Vector<java.lang.String> voiVector
-
groupChooser
private javax.swing.JFileChooser groupChooser
group variables.
-
groupName
private java.lang.String groupName
-
groupDirectory
private java.lang.String groupDirectory
-
sliceImages
private java.util.Vector<ModelImage> sliceImages
image vector.
-
imageVOIs
private java.util.Vector<VOI[]> imageVOIs
VOI vector.
-
groupIndex
private int groupIndex
group index.
-
-
Method Detail
-
algorithmPerformed
public void algorithmPerformed(AlgorithmBase algorithm)
empty function to implement the algorithm interface.- Specified by:
algorithmPerformedin interfaceAlgorithmInterface- Parameters:
algorithm- the algorithm which has just completed
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
ActionPerformed handler.- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener- Overrides:
actionPerformedin classJDialogBase
-
init
public void init()
Dialog GUI interface initialization.
-
readKeyImageDir
private void readKeyImageDir()
Read the key image director and generate image name and voi name vectors.
-
processDir
private void processDir(java.io.File dir)
Process the directory.- Parameters:
dir-
-
sortImageVectorString
private void sortImageVectorString(java.util.Vector<java.lang.String> imageVector)
Sort image vector in ascending order.- Parameters:
imageVector- image name vector.
-
sortVOIVectorString
private void sortVOIVectorString(java.util.Vector<java.lang.String> voiVector)
Sort VOI name vector in ascending order.- Parameters:
voiVector-
-
selectGroupDir
private void selectGroupDir()
Let user choose the Group trained model directory to save.
-
groupImages
private void groupImages()
Group images and exhaustively train the AAM model.
-
area
private float area(float[] xPts, float[] yPts, int nPts)Shape area computation- Parameters:
xPts- VOI points x coordinateyPts- VOI points y coordinatenPts- number of VOI points.- Returns:
-
categorizeByShape
private void categorizeByShape()
Shape based similarity measure. Exhaustive training.
-
pause
public static void pause()
Pauses the display until the user hits enter.
-
counterClockwise
private void counterClockwise(float[] x, float[] y, float[] z, int nPts)
-
categorizeByTexture
private void categorizeByTexture()
Texture bases similarity measure. Currently disabled.
-
readImagesAndVOIs
private void readImagesAndVOIs()
Read image and corresponding VOI.
-
readImagesAndVOIsInReverse
private void readImagesAndVOIsInReverse()
Read image and VOI in reverse order.
-
readImagesAndVOIsFromMid
private void readImagesAndVOIsFromMid()
Read image and VOIs start from the mid slice.
-
-