Class JDialogFemurTraceSectionsNetherland

All Implemented Interfaces:
AlgorithmInterface, DialogDefaultsInterface, ActionListener, FocusListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

public class JDialogFemurTraceSectionsNetherland 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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • UI

      private ViewUserInterface UI
      The main user interface.
    • model

      private C_AAMMODEL model
      AAM model reference.
    • labelModel

      private JLabel labelModel
      key image directory.
    • textFieldModel

      private JTextField textFieldModel
    • buttonModel

      private JButton buttonModel
    • labelImageFAT

      private JLabel labelImageFAT
      Target image directory.
    • textFieldImageFAT

      private JTextField textFieldImageFAT
    • buttonImageFAT

      private JButton buttonImageFAT
    • labelImageGRECED

      private JLabel labelImageGRECED
      Target image directory.
    • textFieldImageGRECED

      private JTextField textFieldImageGRECED
    • buttonImageGRECED

      private JButton buttonImageGRECED
    • labelImageFATCED

      private JLabel labelImageFATCED
      Target image directory.
    • textFieldImageFATCED

      private JTextField textFieldImageFATCED
    • buttonImageFATCED

      private JButton buttonImageFATCED
    • labelImageGRE

      private JLabel labelImageGRE
      GRE image directory.
    • textFieldImageGRE

      private JTextField textFieldImageGRE
    • buttonImageGRE

      private JButton buttonImageGRE
    • imageSelectionPanel

      private JPanel imageSelectionPanel
    • buttonPanel

      private JPanel buttonPanel
    • modelChooser

      private JFileChooser modelChooser
      key images variables.
    • modelDirectory

      private String modelDirectory
    • fatImageChooser

      private JFileChooser fatImageChooser
      target image variables.
    • fatImageName

      private String fatImageName
    • fatImageDirectory

      private String fatImageDirectory
    • greCEDImageChooser

      private JFileChooser greCEDImageChooser
    • greCEDImageName

      private String greCEDImageName
    • greCEDImageDirectory

      private String greCEDImageDirectory
    • fatCEDImageChooser

      private JFileChooser fatCEDImageChooser
    • fatCEDImageName

      private String fatCEDImageName
    • fatCEDImageDirectory

      private String fatCEDImageDirectory
    • greImageChooser

      private JFileChooser greImageChooser
    • greImageName

      private String greImageName
    • greImageDirectory

      private 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 JComboBox axisList
      axis region
    • labelAxis

      private 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
    • whichLeg

      private int whichLeg
    • LEFT_LEG

      private static int LEFT_LEG
    • RIGHT_LEG

      private static int RIGHT_LEG
    • labelWhichLeg

      private JLabel labelWhichLeg
    • leftLegRadio

      private JRadioButton leftLegRadio
    • rightLegRadio

      private JRadioButton rightLegRadio
    • statsToCalculate

      private static final String[] statsToCalculate
    • checkList

      private static final boolean[] checkList
    • MipavCoordinateSystem

      private static final String MipavCoordinateSystem
    • mainPanel

      private JPanel mainPanel
    • startSlice

      private int startSlice
    • endSlice

      private int endSlice
    • endSliceImageNames

      private Vector<String> endSliceImageNames
    • endSliceRangeNames

      private Vector<String> endSliceRangeNames
    • endSliceImages

      private Vector<ModelImage> endSliceImages
    • endSliceRange

    • imageStackFuzzyCfat

      private Vector<Vector<ModelImage>> imageStackFuzzyCfat
    • imageStackFuzzyCgre

      private Vector<Vector<ModelImage>> imageStackFuzzyCgre
    • 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

      public static int FuzzyC
    • Class1

      public static int Class1
    • Class2

      public static int Class2
    • Class3

      public static int Class3
    • GRE

      public static int GRE
    • Class1_weak

      public static int Class1_weak
    • Class1_lowInten

      public static int Class1_lowInten
    • Class1_corner

      public static int Class1_corner
    • FuzzyC_class1

      public static int FuzzyC_class1
    • GRE_HIGH_INTEN

      public static int GRE_HIGH_INTEN
    • CLASS3_HIGH_INTEN

      public static int CLASS3_HIGH_INTEN
    • GRE_GREY

      public static int GRE_GREY
    • Class3_LowInten

      public static int Class3_LowInten
    • FuzzyC_GRE_LOW

      public static int FuzzyC_GRE_LOW
    • GRE_BLACK

      public static int GRE_BLACK
    • GRE_FUZZY_CLASS3

      public static int GRE_FUZZY_CLASS3
    • GRE_FUZZY_CLASS1

      public static int GRE_FUZZY_CLASS1
    • 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
    • edgePattern

      private RegularEdgePattern edgePattern
    • holesPattern

      private HolesPattern holesPattern
    • weakEdgePatternHorizontal

      private WeakConnectedEdgePatternHorizontal weakEdgePatternHorizontal
    • cornerEdgePattern

      private CornerEdgePattern cornerEdgePattern
    • weakEdgePatternVertical

      private WeakConnectedEdgePatternVertical weakEdgePatternVertical
    • regionPattern

      private RegionPattern regionPattern
    • growingPlate

      private GrowingPlatePattern growingPlate
    • group

      private int group
    • GROUP_1

      private int GROUP_1
    • GROUP_2

      private int GROUP_2
    • GROUP_3

      private int GROUP_3
    • GROUP_4

      private int GROUP_4
    • GROUP_5

      private int GROUP_5
    • GROUP_6

      private int GROUP_6
    • GROUP_7

      private int GROUP_7
    • GROUP_8

      private int GROUP_8
    • GROUP_9

      private int GROUP_9
    • GROUP_10

      private int GROUP_10
    • group_5_endSlice

      private int group_5_endSlice
    • group_4_endSlice

      private int group_4_endSlice
    • group_3_endSlice

      private int group_3_endSlice
    • group_2_endSlice

      private int group_2_endSlice
    • group_1_endSlice

      private int group_1_endSlice
    • group_6_endSlice

      private int group_6_endSlice
    • group_7_endSlice

      private int group_7_endSlice
    • group_8_endSlice

      private int group_8_endSlice
    • group_9_endSlice

      private int group_9_endSlice
    • group_10_endSlice

      private int group_10_endSlice
    • thisFrame

      private ViewJFrameImage thisFrame
    • cutOffPoint

      private WildMagic.LibFoundation.Mathematics.Vector3f cutOffPoint
    • cutOffPointInner

      private WildMagic.LibFoundation.Mathematics.Vector3f cutOffPointInner
    • cutOffPointOuter

      private WildMagic.LibFoundation.Mathematics.Vector3f cutOffPointOuter
    • cedImageGRE

      private ModelImage cedImageGRE
    • cedImageFAT

      private ModelImage cedImageFAT
    • close_length

      int close_length
    • firstTimeCheckMidShaft

      boolean firstTimeCheckMidShaft
    • slicesPts

  • Constructor Details

    • JDialogFemurTraceSectionsNetherland

      public JDialogFemurTraceSectionsNetherland(Frame theParentFrame, ModelImage srcImage)
      Constructor. the parent frame
      Parameters:
      theParentFrame -
  • Method Details

    • 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 interface AlgorithmInterface
      Parameters:
      algorithm - the algorithm which has just completed
    • actionPerformed

      public void actionPerformed(ActionEvent event)
      actionPerformed handler.
      Specified by:
      actionPerformed in interface ActionListener
      Overrides:
      actionPerformed in class JDialogBase
    • init

      public void init()
      Init() function to create the GUI dialog.
    • doSegmentation

      public void doSegmentation()
      First time the dialog called, this function is invoked to do segmentation.
    • doFuzzyCmean

      public void doFuzzyCmean(ModelImage coherenceEnhancingDiffusionImage, Vector<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.
    • traceTwoIslandsOnLeft

      private void traceTwoIslandsOnLeft(FileInfoImageXML[] fileInfosFAT, FileInfoImageXML[] fileInfosGRE)
    • traceTwoIslandsOnRight

      private void traceTwoIslandsOnRight(FileInfoImageXML[] fileInfosFAT, FileInfoImageXML[] fileInfosGRE)
    • traceBackLeftLegGroup4

      private void traceBackLeftLegGroup4(FileInfoImageXML[] fileInfosFAT, FileInfoImageXML[] fileInfosGRE)
    • traceBackLeftLegGroup7to6

      private void traceBackLeftLegGroup7to6(FileInfoImageXML[] fileInfosFAT, FileInfoImageXML[] fileInfosGRE)
    • traceBackRightLegGroup7to6

      private void traceBackRightLegGroup7to6(FileInfoImageXML[] fileInfosFAT, FileInfoImageXML[] fileInfosGRE)
    • traceBackRightLegGroup4

      private void traceBackRightLegGroup4(FileInfoImageXML[] fileInfosFAT, FileInfoImageXML[] fileInfosGRE)
    • traceTwoIslands

      private void traceTwoIslands(ModelImage fatImageSlice, ModelImage fuzzyCImage, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage greImageSlice, int sliceNumber, VOI currentVOI, VOI endVOI, boolean extendOuter)
    • equalDistanceSmooth

      public void equalDistanceSmooth(ModelImage greImageSlice)
    • findTwoIslands

      public ModelImage findTwoIslands(ModelImage image, int[] xBounds, int[] yBounds, int[] zBounds, VOI filteredVOI)
    • tracingDFSBackward

      private void tracingDFSBackward(ModelImage fatImageSlice, ModelImage fuzzyCImage, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage greImageSlice, int sliceNumber, VOI currentVOI, VOI endVOI, boolean extendOuter)
    • traceSection4Backward

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection4Backward(float posX, float posY, float stopX, float stopY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, int currentStep, float distCurrent, float distInner, ModelImage greImageSlice, ModelImage class1Image, ModelImage class2Image, ModelImage class3Image, ModelImage fuzzyCImage)
    • findBoundingContour

      private void findBoundingContour(int sliceNumber, WildMagic.LibFoundation.Mathematics.Vector3f center, ModelImage fatImageSlice, VOI endVOI)
    • 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)
    • smoothVOI30Single

      public void smoothVOI30Single(ModelImage maskImage, ModelImage resultImage)
    • smoothVOISingle

      public void smoothVOISingle(ModelImage maskImage, ModelImage resultImage, int nPts)
    • smoothVOI60Single

      public void smoothVOI60Single(ModelImage maskImage, ModelImage resultImage)
    • smoothVOISingle

      public void smoothVOISingle(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.
    • readFATImages

      public void readFATImages()
      read target image.
    • readGREImages

      public void readGREImages()
      read target image.
    • readFATCEDImages

      public void readFATCEDImages()
      read target image.
    • readGREImage

      private void readGREImage()
      File chooser to select target image directory.
    • readFATCEDImage

      private void readFATCEDImage()
      File chooser to select target image directory.
    • 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(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, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection1

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection1(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection2

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection2(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection3

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection3(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection4

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection4(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection5_upper

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection5_upper(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection5_lower

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection5_lower(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection6_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection6_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection1_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection1_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection2_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection2_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection3_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection3_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection4_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection4_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection5_upper_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection5_upper_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • traceSection5_lower_condyle

      private WildMagic.LibFoundation.Mathematics.Vector2f traceSection5_lower_condyle(float posX, float posY, float stepX, float stepY, WildMagic.LibFoundation.Mathematics.Vector3f center, float degree, int sliceNumber, float distCurrent, float distOuter, ModelImage greImageSlice, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage fuzzyCImageFat, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, ModelImage fuzzyCImageGre)
    • identifyGroups

      private void identifyGroups(int sliceNumber)
    • tracingDFS_condyle

      private void tracingDFS_condyle(ModelImage fatImageSlice, ModelImage fuzzyCImageFat, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage greImageSlice, ModelImage fuzzyCImageGre, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter, VOILine leftLine, VOILine rightLine)
    • tracingDFS

      private void tracingDFS(ModelImage fatImageSlice, ModelImage fuzzyCImageFat, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage greImageSlice, ModelImage fuzzyCImageGre, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter, VOILine leftLine, VOILine rightLine)
    • tracingDFS_shaftCondyle

      private void tracingDFS_shaftCondyle(ModelImage fatImageSlice, ModelImage fuzzyCImageFat, ModelImage class1ImageFat, ModelImage class2ImageFat, ModelImage class3ImageFat, ModelImage greImageSlice, ModelImage fuzzyCImageGre, ModelImage class1ImageGre, ModelImage class2ImageGre, ModelImage class3ImageGre, int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter, VOILine leftLine, VOILine rightLine)
    • 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, VOILine leftLine, VOILine rightLine)
    • findBoundingContour_condyle

      private void findBoundingContour_condyle(int sliceNumber, VOI resultVOIBoundary, VOI resultVOIInner, VOI resultVOIOuter, WildMagic.LibFoundation.Mathematics.Vector3f center, ModelImage fatImageSlice, VOILine leftLine, VOILine rightLine)
    • findSections

      private void findSections(WildMagic.LibFoundation.Mathematics.Vector3f[] inContour, int contourSize, 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)
    • tracingDFS_mid_cutoffLine

      private void tracingDFS_mid_cutoffLine(ModelImage greImageSlice, ModelImage fatImageSliceMid, VOI boundary, VOI inner, VOI outer, boolean first, VOILine leftLine, VOILine rightLine)
    • pointLineDistance

      private double pointLineDistance(double x, double y, double x1, double y1, double x2, double y2)
    • 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)
    • findGreyRegionOnImage

      private boolean findGreyRegionOnImage(int x, int y, ModelImage imageSlice, int range, double intensity, int type)
    • findBlackRegionOnImage

      private boolean findBlackRegionOnImage(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)
    • findGrowingPlate

      private boolean findGrowingPlate(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