Internal:PODM 3D: Difference between revisions
Jump to navigation
Jump to search
Spyridon97 (talk | contribs) |
Spyridon97 (talk | contribs) |
||
| Line 46: | Line 46: | ||
==Implementation of Adaptivity== | ==Implementation of Adaptivity== | ||
# Implement Adaptivity using Christos Code✔ | # Implement Adaptivity using Christos Code✔ | ||
# Podm Result of Gagic Data image with volume grading on and δ=6, minimum Volume Size = 0.5, limit = 0. | # Podm Result of Gagic Data image with volume grading on and δ=6, minimum Volume Size = 0.5, limit = 0.1✔ | ||
## 2D (Triangle): [[File:NT_X_min_0.5_limit_2e-3_interpolated.png|500px|Nt2DAdaptivity]] (Done by Christos) | ## 2D (Triangle): [[File:NT_X_min_0.5_limit_2e-3_interpolated.png|500px|Nt2DAdaptivity]] (Done by Christos) | ||
## 3D (PODM): [[File:NtAdaptivity.png|500px|Nt3DAdaptivity]] (Done with Christos) | ## 3D (PODM): [[File:NtAdaptivity.png|500px|Nt3DAdaptivity]] (Done with Christos) | ||
Revision as of 16:53, 18 February 2020
Documentation
- Read PODM3D paper✔
- Read Guaranteed Quality Tetrahedral Delaunay Meshing for Medical Images paper (Sect. 9) (TODO)
- Write a proper README.md file✔
- Create Documentation of PODM 3D for Medical Image Computing and Computational Nuclear Femptography✔
Explore Code
- Install all PODM3D libraries✔
- Compile PODM3D code✔
- Restructure repository of PODM3D based on Software engineering standards✔
Functionality
- Decouple Args from PODM✔
- Create setArguments function✔
- Create setInputImage(ImageType::Pointer)✔
- Remove IOs from PODM✔
- Create setSizingFunction(image, minimumElementEdgeSize, elementWeightLimit)✔
- Separate the interface, the IOs and the filters from PODM✔
- Create a general PODM driver✔
- Set a warning if delta > min-spacing * min-dimension-size / 5✔
Adaptivity
Implementation of Sizing Function
- Create UML diagrams to understand the code and the Meshing Procedure in general✔
- Create a list of functions that need to be modified to implement the extra Rule ✔
- Modify the created list (Extra Rule sizing Function list) of functions✔
- Create a test sizing function to understand if modifications have been done correctly✔
- 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 }
- The test sizing function is
- Create the infrastructure to support Sizing Function pointer✔
- Incorporate Function Pointer to PODM✔
Implementation of Adaptivity
- Implement Adaptivity using Christos Code✔
- Podm Result of Gagic Data image with volume grading on and δ=6, minimum Volume Size = 0.5, limit = 0.1✔
- Understand that the current implementation supports negative weights✔
- Change the current implementation to use the minimum-maximum edge length of the element instead of its volume✔
- Identify an issue of checking sample points outside the image and solve it according to Christos's suggestions✔
- Test PODM with all the Images in Box✔
- Create meshes out of all the images on CNF_SHARE that are representative examples of adaptivity https://crtc.cs.odu.edu/CNF:Example_Meshes ✔
- Add those meshes to the Appendix of the November Report ✔
Animated Adaptive Meshing Process
- Produce the meshes for the Animated Adaptive Meshing Process and the January report✔
- Produce Animated Process:✔
-> Input Image:
-> Image Segmentation
-> Meshing Procedure. This is a gif which is visible here: https://crtc.cs.odu.edu/images/8/89/AdaptiveMeshing.gif
-> Adapted mesh
-> Linear Interpolation
- Created videos of the meshing procedure that are accessible on http://www.cs.odu.edu/crtc/videos/PODM3D.html ✔
Multiple δ
- Identify places in the code where δ varies with regards to background values
- Test if multiple δ work using synthetically generated image data