Internal:PODM 3D: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Spyridon97 (talk | contribs)
No edit summary
Spyridon97 (talk | contribs)
No edit summary
Line 7: Line 7:
# Execute PODM3D✔
# Execute PODM3D✔
# Read [https://cepm.cs.odu.edu/pub/papers/journal_58.pdf Guaranteed Quality Tetrahedral Delaunay Meshing for Medical Images] paper (Sect. 9)
# Read [https://cepm.cs.odu.edu/pub/papers/journal_58.pdf Guaranteed Quality Tetrahedral Delaunay Meshing for Medical Images] paper (Sect. 9)
=Adaptivity 3D=
=Adaptivity=
==Implement Sizing Function==
# Create an extra Rule which will be a user-defined sizingFunction that gets a tetrahedron when all rules are met✔
# Create an extra Rule which will be a user-defined sizingFunction that gets a tetrahedron when all rules are met✔
## Create UML diagrams to understand the code and the Meshing Procedure in general✔
## Create UML diagrams to understand the code and the Meshing Procedure in general✔
Line 29: Line 30:
#### Cube: [[File:CubeTestSizingFunction.png|500px|CubeTestSizingFunction]]  
#### Cube: [[File:CubeTestSizingFunction.png|500px|CubeTestSizingFunction]]  
#### Sphere: [[File:SphereTestSizingFunction.png|500px|SphereTestSizingFunction]]
#### Sphere: [[File:SphereTestSizingFunction.png|500px|SphereTestSizingFunction]]
==Implement Adaptivity==
# Implement Adaptivity in 3D inside sizingFunction using Christos Code:
# Implement Adaptivity in 3D inside sizingFunction using Christos Code:
## Implement Adaptivity in 3D✔
## Implement Adaptivity in 3D✔

Revision as of 11:49, 28 October 2019

Explore Code

  1. Read PODM3D paper✔
  2. Install all PODM3D libraries✔
  3. Compile PODM3D code✔
  4. Restructure repository of PODM3D based on Software engineering standards✔
  5. Execute PODM3D✔
  6. Read Guaranteed Quality Tetrahedral Delaunay Meshing for Medical Images paper (Sect. 9)

Adaptivity

Implement Sizing Function

  1. Create an extra Rule which will be a user-defined sizingFunction that gets a tetrahedron when all rules are met✔
    1. Create UML diagrams to understand the code and the Meshing Procedure in general✔
    2. Create a list of functions that need to be modified to implement the extra Rule ✔
    3. Modify the created list (Extra Rule sizing Function list) of functions✔
    4. Create a test sizing function to understand if modifications have been done correctly✔
      1. The test sizing function is
        bool checkSizingFunction(double coordinatesOfTetrahedron**)
        {
            double volume = volume(coordinatesOfTetrahedron);
            double* baryCenter = baryCenter(coordinatesOfTetrahedron)
            
            // if x axis <= 55 and volume of tetrahedron > 10
            if (baryCenter[0] <= 55 && volume > 10)
               return true;
            else
               return false
        }
        
      2. Podm Result of Cube image with Dimensions 110x110x110 and Sphere image with radius = 55, volume grading on and δ=10
        1. Cube: CubeTestSizingFunction
        2. Sphere: SphereTestSizingFunction

Implement Adaptivity

  1. Implement Adaptivity in 3D inside sizingFunction using Christos Code:
    1. Implement Adaptivity in 3D✔
    2. Podm Result of Gagic Data image with volume grading on and δ=6, minimum Volume Size = 0.5, limit = 0.1
      1. 2D (Triangle): Nt2DAdaptivity (Done by Christos)
      2. 3D (PODM): Nt3DAdaptivity (Done with Christos)
    3. Handle cases with negative weight (rescale them)
    4. Test Adaptivity with extra images (cases) from Gagik Gavalian
    5. Create Sizing Function pointer
  2. Create an animated Meshing Process✔
    1. Produce the meshes for the Meshing Process video and the January report✔
    2. Animated Process:InputImageImageSegmentationAdaptiveMeshingAdaptedMeshLinearInterpolation✔
    3. The 3rd Image is a gif, which is visible here: https://crtc.cs.odu.edu/images/8/89/AdaptiveMeshing.gif
  3. Identify places in the code where δ varies with regards to background values
  4. Test if multiple δ work using synthetically generated image data