Class JDialogPatellaTraceSectionsNIH
- 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.JDialogPatellaTraceSectionsNIH
-
- 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 JDialogPatellaTraceSectionsNIH extends JDialogBase implements AlgorithmInterface
The class is the driver for the AAM classification. User specifies the AAM trained Atlas directory and target image. The algorithm performs NMI based similarity measure between each 2D slice in target image and the 2D slices atlas, find the closed image, then invoke the corresponding AAM model to do automatic segmentation on prostate MRI image.- Author:
- Ruida Cheng
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
JDialogPatellaTraceSectionsNIH.Line
(package private) class
JDialogPatellaTraceSectionsNIH.ModelString
(package private) class
JDialogPatellaTraceSectionsNIH.PolygonShapeInfo
Polygon shape info class to do shape comparison after the AAM classification applied to do the segmentation.(package private) class
JDialogPatellaTraceSectionsNIH.Range
Ending slice start and end indexes.(package private) class
JDialogPatellaTraceSectionsNIH.ShapeFactor
shape descriptor class.(package private) class
JDialogPatellaTraceSectionsNIH.TracingPoint
-
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 int
Axial
axis orientation.private int
axis
private javax.swing.JComboBox
axisList
axis regionprivate int
boxXmax
private int
boxXmin
private int
boxYmax
Cropped image region.private int
boxYmin
Cropped image region.private javax.swing.JButton
buttonImageFAT
private javax.swing.JButton
buttonImageGRE
private javax.swing.JButton
buttonModel
private javax.swing.JPanel
buttonPanel
private static boolean[]
checkList
private static int
Class1
private static int
Class1_corner
private static int
Class1_lowInten
private static int
Class1_weak
private static int
Class2
private static int
Class3
private static int[]
colNumber
private CornerEdgePattern
cornerEdgePattern
private static int
Coronal
private RegularEdgePattern
edgePattern
private int
endPt
private int
endSlice
private java.util.Vector<java.lang.String>
endSliceImageNames
private java.util.Vector<ModelImage>
endSliceImages
private java.util.Vector<JDialogPatellaTraceSectionsNIH.Range>
endSliceRange
private java.util.Vector<java.lang.String>
endSliceRangeNames
private ModelImage
fatImage
private javax.swing.JFileChooser
fatImageChooser
target image variables.private java.lang.String
fatImageDirectory
private java.lang.String
fatImageName
(package private) boolean
firstAssigned
private static int
FuzzyC
private ModelImage
gaussianMap
private static int
GRE
private ModelImage
greImage
private javax.swing.JFileChooser
greImageChooser
private java.lang.String
greImageDirectory
private java.lang.String
greImageName
private HolesPattern
holesPattern
private javax.swing.JPanel
imageSelectionPanel
private java.util.Vector<java.util.Vector<ModelImage>>
imageStackFuzzyC
private javax.swing.JLabel
labelAxis
private javax.swing.JLabel
labelImageFAT
Target image directory.private javax.swing.JLabel
labelImageGRE
GRE image directory.private javax.swing.JLabel
labelModel
key image directory.private javax.swing.JPanel
mainPanel
private int
midPt
private static java.lang.String
MipavCoordinateSystem
private C_AAMMODEL
model
AAM model reference.private javax.swing.JFileChooser
modelChooser
key images variables.private java.lang.String
modelDirectory
(package private) int
numSteps
private static int[]
rowNumber
private static int
Saggital
(package private) static float
section1_degree_end
(package private) static float
section1_degree_start
(package private) static float
section2_degree_end
(package private) static float
section2_degree_start
(package private) static float
section3_degree_end
(package private) static float
section3_degree_start
(package private) static float
section4_degree_end
(package private) static float
section4_degree_start
(package private) static float
section5_degree_lowerHalf_end
(package private) static float
section5_degree_lowerHalf_start
(package private) static float
section5_degree_upperHalf_end
(package private) static float
section5_degree_upperHalf_start
(package private) static float
section6_degree_end
(package private) static float
section6_degree_start
private static long
serialVersionUID
(package private) java.util.Hashtable<java.lang.Integer,java.util.Hashtable<java.lang.Integer,JDialogPatellaTraceSectionsNIH.Line>>
slicesPts
private int
startPt
private int
startSlice
private static java.lang.String[]
statsToCalculate
(package private) int
tenPercent
private javax.swing.JTextField
textFieldImageFAT
private javax.swing.JTextField
textFieldImageGRE
private javax.swing.JTextField
textFieldModel
(package private) int
twentyPercent
private ViewUserInterface
UI
The main user interface.(package private) VOI
voiNewFinal
private VOIVector
voiVectorFinal
private WeakConnectedEdgePatternHorizontal
weakEdgePatternHorizontal
private WeakConnectedEdgePatternVertical
weakEdgePatternVertical
private int[]
xBounds
Cropped region bounding.private int[]
yBounds
private int[]
zBounds
-
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 JDialogPatellaTraceSectionsNIH(java.awt.Frame theParentFrame, ModelImage srcImage)
Constructor. the parent frame
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent event)
actionPerformed handler.void
algorithmPerformed(AlgorithmBase algorithm)
Called after an algorithm this listener is registered to exits (maybe successfully, maybe not).private void
computeGradient(float xCoord, float yCoord, float zCoord, double[] result, double[] grad, double[] gradDir, ModelImage targetImageSlice)
private void
computeGradient(ModelImage image, float xCoord, float yCoord, float zCoord, double[] result, double[] grad, double[] gradDir)
private void
computeNormalLine(WildMagic.LibFoundation.Mathematics.Vector3f startPt, WildMagic.LibFoundation.Mathematics.Vector3f endPt, WildMagic.LibFoundation.Mathematics.Vector3f midPt, WildMagic.LibFoundation.Mathematics.Vector3f outNormPt, WildMagic.LibFoundation.Mathematics.Vector3f inNormPt, float stepPct, WildMagic.LibFoundation.Mathematics.Vector3f normStep, WildMagic.LibFoundation.Mathematics.Vector3f interpPt)
void
condenseVOI(ModelImage targetImageSlice, int voiNumber)
void
configVOIsNumbers(ModelImage image, int[] slices)
void
createOneContours(ModelImage targetImageSlice)
void
createTwoContours(ModelImage targetImageSlice)
(package private) void
DFS(int row, int col, ModelImage fuzzyCImage, int[][] visited, int[] xmin, int[] xmax, int[] ymin, int[] ymax)
private WildMagic.LibFoundation.Mathematics.Vector3f
displaySlices(ModelImage fuzzyCImage, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage greImageSlice, ModelImage gaussianImageSlice, int sliceNumber)
private void
displaySlicesRadical(ModelImage fuzzyCImage, ModelImage class1Image, ModelImage greImageSlice, ModelImage gaussianImageSlice, int sliceNumber, WildMagic.LibFoundation.Mathematics.Vector3f pos)
void
disposeLocal()
static double
distance(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2, float[] res)
void
doFuzzyCmean(ModelImage coherenceEnhancingDiffusionImage, java.util.Vector<java.util.Vector<ModelImage>> imageStackFuzzyC)
void
doSegmentation(boolean doCropImage)
First time the dialog called, this function is invoked to do segmentation.private void
findBestGradientChange(WildMagic.LibFoundation.Mathematics.Vector3f interpPt, WildMagic.LibFoundation.Mathematics.Vector3f normStep, float sliceZ, float[] x, float[] y, ModelImage targetImageSlice)
private void
findBoundingContour(int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter, WildMagic.LibFoundation.Mathematics.Vector3f center, ModelImage fatImageSlice)
private boolean
findCornerEdgeOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
private boolean
findEdgeOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
private boolean
findHolesOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
private void
findSections(VOI boundary, float[][] sections, WildMagic.LibFoundation.Mathematics.Vector3f center)
private boolean
findWeakConnectedEdgeOnImageHorizontal(int x, int y, ModelImage imageSlice, int range, int type, boolean searchOnRight, int[] xResult)
private boolean
findWeakConnectedEdgeOnImageVertical(int x, int y, ModelImage imageSlice, int range, int type, boolean searchOnRight, int[] xResult)
private void
generateBoundaryContours(VOIBase srcContour, ModelImage targetImageSlice)
ModelImage
generateGaussianMap()
private void
generateInnerContour(VOIBase srcContour, ModelImage targetImageSlice)
void
generateInOutContours(VOIBase startVOI, float[] innerDist, float[] outerDist, WildMagic.LibFoundation.Mathematics.Vector3f[] pt_inner, WildMagic.LibFoundation.Mathematics.Vector3f[] pt_outer, WildMagic.LibFoundation.Mathematics.Vector3f[] pt_voi, float[] center)
(package private) void
generateMap(int x, int y, ModelImage imageSlice, int[][] visited, int[][] map, int Xmin, int Xmax, int Ymin, int Ymax, int type)
private float[]
getCentroids(ModelImage srcImage, AlgorithmFuzzyCMeans fcmAlgo, float[] centroids)
void
init()
Init() function to create the GUI dialog.(package private) boolean
isSafe(int row, int col, int[][] visited, ModelImage fuzzyCImage, int[] xmin, int[] xmax, int[] ymin, int[] ymax)
(package private) boolean
isSafe(int x, int y, int[][] visited, ModelImage fatImageSlice, int Xmin, int Xmax, int Ymin, int Ymax, int xDim, int yDim)
static void
pause()
Pauses the display until the user hits enter.(package private) void
printVector(java.util.Vector<JDialogPatellaTraceSectionsNIH.TracingPoint> v)
private void
processingEndSliceData(java.lang.String endSliceModelDir)
Process the ending slice atlas directory.private void
readEndingSlicesDir()
Read the ending slice index to guide the segmentation towards apex and base.private void
readFATImage()
File chooser to select target image directory.void
readFATImagesAndVOIs()
read target image.ModelImage
runCED(ModelImage targetImage)
private void
runLevelSet(ModelImage fuzzyCImage)
void
segmentationAuto()
Driver to do the auto segmentation with AAM model.void
smoothVOI120Single(ModelImage maskImage, ModelImage resultImage)
void
smoothVOI150Single(ModelImage maskImage, ModelImage resultImage)
void
smoothVOI60(ModelImage maskImage, ModelImage resultImage)
void
smoothVOI60DualContour(ModelImage maskImage, ModelImage resultImage)
void
smoothVOI60Single(ModelImage maskImage, ModelImage resultImage)
void
smoothVOI60Special(ModelImage maskImage, ModelImage resultImage)
void
smoothVOISingle(ModelImage maskImage, ModelImage resultImage, int nPts)
private void
strain()
private void
strain1()
private WildMagic.LibFoundation.Mathematics.Vector2f
traceSection1(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
private WildMagic.LibFoundation.Mathematics.Vector2f
traceSection2(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
private WildMagic.LibFoundation.Mathematics.Vector2f
traceSection3(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
private WildMagic.LibFoundation.Mathematics.Vector2f
traceSection4(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
private WildMagic.LibFoundation.Mathematics.Vector2f
traceSection5(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
private WildMagic.LibFoundation.Mathematics.Vector2f
traceSection6(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
private void
tracingDFS(ModelImage fatImageSlice, ModelImage fuzzyCImage, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage greImageSlice, ModelImage gaussianImageSlice, int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter)
private void
tracingDFS_mid(ModelImage greImageSlice, ModelImage fatImageSliceMid, VOI boundary, VOI inner, VOI outer, boolean first)
void
transformVOI()
BSpline smooth the final auto segmentation VOI contours.void
updateTargetImage(int sliceNumber, ModelImage targetImageSlice)
After auto segmentation, update the target image with corresponding segmented VOIs.-
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.
-
model
private C_AAMMODEL model
AAM model reference.
-
labelModel
private javax.swing.JLabel labelModel
key image directory.
-
textFieldModel
private javax.swing.JTextField textFieldModel
-
buttonModel
private javax.swing.JButton buttonModel
-
labelImageFAT
private javax.swing.JLabel labelImageFAT
Target image directory.
-
textFieldImageFAT
private javax.swing.JTextField textFieldImageFAT
-
buttonImageFAT
private javax.swing.JButton buttonImageFAT
-
labelImageGRE
private javax.swing.JLabel labelImageGRE
GRE image directory.
-
textFieldImageGRE
private javax.swing.JTextField textFieldImageGRE
-
buttonImageGRE
private javax.swing.JButton buttonImageGRE
-
imageSelectionPanel
private javax.swing.JPanel imageSelectionPanel
-
buttonPanel
private javax.swing.JPanel buttonPanel
-
modelChooser
private javax.swing.JFileChooser modelChooser
key images variables.
-
modelDirectory
private java.lang.String modelDirectory
-
fatImageChooser
private javax.swing.JFileChooser fatImageChooser
target image variables.
-
fatImageName
private java.lang.String fatImageName
-
fatImageDirectory
private java.lang.String fatImageDirectory
-
greImageChooser
private javax.swing.JFileChooser greImageChooser
-
greImageName
private java.lang.String greImageName
-
greImageDirectory
private java.lang.String greImageDirectory
-
fatImage
private ModelImage fatImage
-
greImage
private ModelImage greImage
-
boxYmin
private int boxYmin
Cropped image region.
-
boxYmax
private int boxYmax
Cropped image region.
-
boxXmin
private int boxXmin
-
boxXmax
private int boxXmax
-
xBounds
private int[] xBounds
Cropped region bounding.
-
yBounds
private int[] yBounds
-
zBounds
private int[] zBounds
-
axisList
private javax.swing.JComboBox axisList
axis region
-
labelAxis
private javax.swing.JLabel labelAxis
-
Axial
private static int Axial
axis orientation. Will be used later.
-
Saggital
private static int Saggital
-
Coronal
private static int Coronal
-
axis
private int axis
-
statsToCalculate
private static final java.lang.String[] statsToCalculate
-
checkList
private static final boolean[] checkList
-
MipavCoordinateSystem
private static final java.lang.String MipavCoordinateSystem
-
mainPanel
private javax.swing.JPanel mainPanel
-
startSlice
private int startSlice
-
endSlice
private int endSlice
-
endSliceImageNames
private java.util.Vector<java.lang.String> endSliceImageNames
-
endSliceRangeNames
private java.util.Vector<java.lang.String> endSliceRangeNames
-
endSliceImages
private java.util.Vector<ModelImage> endSliceImages
-
endSliceRange
private java.util.Vector<JDialogPatellaTraceSectionsNIH.Range> endSliceRange
-
imageStackFuzzyC
private java.util.Vector<java.util.Vector<ModelImage>> imageStackFuzzyC
-
gaussianMap
private ModelImage gaussianMap
-
rowNumber
private static int[] rowNumber
-
colNumber
private static int[] colNumber
-
startPt
private int startPt
-
midPt
private int midPt
-
endPt
private int endPt
-
voiVectorFinal
private VOIVector voiVectorFinal
-
voiNewFinal
VOI voiNewFinal
-
FuzzyC
private static int FuzzyC
-
Class1
private static int Class1
-
Class2
private static int Class2
-
Class3
private static int Class3
-
GRE
private static int GRE
-
Class1_weak
private static int Class1_weak
-
Class1_lowInten
private static int Class1_lowInten
-
Class1_corner
private static int Class1_corner
-
section1_degree_start
static float section1_degree_start
-
section1_degree_end
static float section1_degree_end
-
section2_degree_start
static float section2_degree_start
-
section2_degree_end
static float section2_degree_end
-
section3_degree_start
static float section3_degree_start
-
section3_degree_end
static float section3_degree_end
-
section4_degree_start
static float section4_degree_start
-
section4_degree_end
static float section4_degree_end
-
section5_degree_upperHalf_start
static float section5_degree_upperHalf_start
-
section5_degree_upperHalf_end
static float section5_degree_upperHalf_end
-
section5_degree_lowerHalf_start
static float section5_degree_lowerHalf_start
-
section5_degree_lowerHalf_end
static float section5_degree_lowerHalf_end
-
section6_degree_start
static float section6_degree_start
-
section6_degree_end
static float section6_degree_end
-
firstAssigned
boolean firstAssigned
-
numSteps
int numSteps
-
tenPercent
int tenPercent
-
twentyPercent
int twentyPercent
-
edgePattern
private RegularEdgePattern edgePattern
-
holesPattern
private HolesPattern holesPattern
-
weakEdgePatternHorizontal
private WeakConnectedEdgePatternHorizontal weakEdgePatternHorizontal
-
cornerEdgePattern
private CornerEdgePattern cornerEdgePattern
-
weakEdgePatternVertical
private WeakConnectedEdgePatternVertical weakEdgePatternVertical
-
slicesPts
java.util.Hashtable<java.lang.Integer,java.util.Hashtable<java.lang.Integer,JDialogPatellaTraceSectionsNIH.Line>> slicesPts
-
-
Constructor Detail
-
JDialogPatellaTraceSectionsNIH
public JDialogPatellaTraceSectionsNIH(java.awt.Frame theParentFrame, ModelImage srcImage)
Constructor. the parent frame- Parameters:
theParentFrame
-
-
-
Method Detail
-
configVOIsNumbers
public void configVOIsNumbers(ModelImage image, int[] slices)
-
algorithmPerformed
public void algorithmPerformed(AlgorithmBase algorithm)
Description copied from interface:AlgorithmInterface
Called after an algorithm this listener is registered to exits (maybe successfully, maybe not). If the algorithm is run in a separate thread, this call will be made within that thread. If not, this call will be made from that same, shared thread.- Specified by:
algorithmPerformed
in interfaceAlgorithmInterface
- Parameters:
algorithm
- the algorithm which has just completed
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
actionPerformed handler.- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in classJDialogBase
-
init
public void init()
Init() function to create the GUI dialog.
-
doSegmentation
public void doSegmentation(boolean doCropImage)
First time the dialog called, this function is invoked to do segmentation.
-
generateGaussianMap
public ModelImage generateGaussianMap()
-
doFuzzyCmean
public void doFuzzyCmean(ModelImage coherenceEnhancingDiffusionImage, java.util.Vector<java.util.Vector<ModelImage>> imageStackFuzzyC)
-
getCentroids
private float[] getCentroids(ModelImage srcImage, AlgorithmFuzzyCMeans fcmAlgo, float[] centroids)
-
transformVOI
public void transformVOI()
BSpline smooth the final auto segmentation VOI contours.
-
generateInOutContours
public void generateInOutContours(VOIBase startVOI, float[] innerDist, float[] outerDist, WildMagic.LibFoundation.Mathematics.Vector3f[] pt_inner, WildMagic.LibFoundation.Mathematics.Vector3f[] pt_outer, WildMagic.LibFoundation.Mathematics.Vector3f[] pt_voi, float[] center)
-
segmentationAuto
public void segmentationAuto()
Driver to do the auto segmentation with AAM model.
-
strain1
private void strain1()
-
strain
private void strain()
-
runLevelSet
private void runLevelSet(ModelImage fuzzyCImage)
-
createOneContours
public void createOneContours(ModelImage targetImageSlice)
-
generateInnerContour
private void generateInnerContour(VOIBase srcContour, ModelImage targetImageSlice)
-
runCED
public ModelImage runCED(ModelImage targetImage)
-
createTwoContours
public void createTwoContours(ModelImage targetImageSlice)
-
generateBoundaryContours
private void generateBoundaryContours(VOIBase srcContour, ModelImage targetImageSlice)
-
condenseVOI
public void condenseVOI(ModelImage targetImageSlice, int voiNumber)
-
findBestGradientChange
private void findBestGradientChange(WildMagic.LibFoundation.Mathematics.Vector3f interpPt, WildMagic.LibFoundation.Mathematics.Vector3f normStep, float sliceZ, float[] x, float[] y, ModelImage targetImageSlice)
-
computeGradient
private void computeGradient(float xCoord, float yCoord, float zCoord, double[] result, double[] grad, double[] gradDir, ModelImage targetImageSlice)
-
computeNormalLine
private void computeNormalLine(WildMagic.LibFoundation.Mathematics.Vector3f startPt, WildMagic.LibFoundation.Mathematics.Vector3f endPt, WildMagic.LibFoundation.Mathematics.Vector3f midPt, WildMagic.LibFoundation.Mathematics.Vector3f outNormPt, WildMagic.LibFoundation.Mathematics.Vector3f inNormPt, float stepPct, WildMagic.LibFoundation.Mathematics.Vector3f normStep, WildMagic.LibFoundation.Mathematics.Vector3f interpPt)
-
smoothVOI60
public void smoothVOI60(ModelImage maskImage, ModelImage resultImage)
-
smoothVOI60Single
public void smoothVOI60Single(ModelImage maskImage, ModelImage resultImage)
-
smoothVOI150Single
public void smoothVOI150Single(ModelImage maskImage, ModelImage resultImage)
-
smoothVOI120Single
public void smoothVOI120Single(ModelImage maskImage, ModelImage resultImage)
-
smoothVOI60DualContour
public void smoothVOI60DualContour(ModelImage maskImage, ModelImage resultImage)
-
smoothVOI60Special
public void smoothVOI60Special(ModelImage maskImage, ModelImage resultImage)
-
updateTargetImage
public void updateTargetImage(int sliceNumber, ModelImage targetImageSlice)
After auto segmentation, update the target image with corresponding segmented VOIs.- Parameters:
sliceNumber
- slice number.targetImageSlice
- 2D target image slice.
-
pause
public static void pause()
Pauses the display until the user hits enter.
-
readFATImagesAndVOIs
public void readFATImagesAndVOIs()
read target image.
-
readFATImage
private void readFATImage()
File chooser to select target image directory.
-
readEndingSlicesDir
private void readEndingSlicesDir()
Read the ending slice index to guide the segmentation towards apex and base.
-
processingEndSliceData
private void processingEndSliceData(java.lang.String endSliceModelDir)
Process the ending slice atlas directory.- Parameters:
endSliceModelDir
- atlas directory.
-
disposeLocal
public void disposeLocal()
-
computeGradient
private void computeGradient(ModelImage image, float xCoord, float yCoord, float zCoord, double[] result, double[] grad, double[] gradDir)
-
displaySlicesRadical
private void displaySlicesRadical(ModelImage fuzzyCImage, ModelImage class1Image, ModelImage greImageSlice, ModelImage gaussianImageSlice, int sliceNumber, WildMagic.LibFoundation.Mathematics.Vector3f pos)
-
displaySlices
private WildMagic.LibFoundation.Mathematics.Vector3f displaySlices(ModelImage fuzzyCImage, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage greImageSlice, ModelImage gaussianImageSlice, int sliceNumber)
-
traceSection6
private WildMagic.LibFoundation.Mathematics.Vector2f traceSection6(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
-
traceSection1
private WildMagic.LibFoundation.Mathematics.Vector2f traceSection1(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
-
traceSection2
private WildMagic.LibFoundation.Mathematics.Vector2f traceSection2(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
-
traceSection3
private WildMagic.LibFoundation.Mathematics.Vector2f traceSection3(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
-
traceSection4
private WildMagic.LibFoundation.Mathematics.Vector2f traceSection4(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
-
traceSection5
private WildMagic.LibFoundation.Mathematics.Vector2f traceSection5(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
-
tracingDFS
private void tracingDFS(ModelImage fatImageSlice, ModelImage fuzzyCImage, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage greImageSlice, ModelImage gaussianImageSlice, int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter)
-
smoothVOISingle
public void smoothVOISingle(ModelImage maskImage, ModelImage resultImage, int nPts)
-
distance
public static final double distance(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2, float[] res)
-
findBoundingContour
private void findBoundingContour(int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter, WildMagic.LibFoundation.Mathematics.Vector3f center, ModelImage fatImageSlice)
-
findSections
private void findSections(VOI boundary, float[][] sections, WildMagic.LibFoundation.Mathematics.Vector3f center)
-
tracingDFS_mid
private void tracingDFS_mid(ModelImage greImageSlice, ModelImage fatImageSliceMid, VOI boundary, VOI inner, VOI outer, boolean first)
-
findCornerEdgeOnImage
private boolean findCornerEdgeOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
-
findWeakConnectedEdgeOnImageHorizontal
private boolean findWeakConnectedEdgeOnImageHorizontal(int x, int y, ModelImage imageSlice, int range, int type, boolean searchOnRight, int[] xResult)
-
findWeakConnectedEdgeOnImageVertical
private boolean findWeakConnectedEdgeOnImageVertical(int x, int y, ModelImage imageSlice, int range, int type, boolean searchOnRight, int[] xResult)
-
findHolesOnImage
private boolean findHolesOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
-
findEdgeOnImage
private boolean findEdgeOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
-
generateMap
void generateMap(int x, int y, ModelImage imageSlice, int[][] visited, int[][] map, int Xmin, int Xmax, int Ymin, int Ymax, int type)
-
isSafe
boolean isSafe(int x, int y, int[][] visited, ModelImage fatImageSlice, int Xmin, int Xmax, int Ymin, int Ymax, int xDim, int yDim)
-
DFS
void DFS(int row, int col, ModelImage fuzzyCImage, int[][] visited, int[] xmin, int[] xmax, int[] ymin, int[] ymax)
-
isSafe
boolean isSafe(int row, int col, int[][] visited, ModelImage fuzzyCImage, int[] xmin, int[] xmax, int[] ymin, int[] ymax)
-
printVector
void printVector(java.util.Vector<JDialogPatellaTraceSectionsNIH.TracingPoint> v)
-
-