From d7e405fa7eae74d99dec9013c20b57b6eeaf5d4d Mon Sep 17 00:00:00 2001 From: Jennings Zhang Date: Fri, 17 Feb 2023 09:05:38 -0500 Subject: [PATCH] Small doc changes --- README.md | 58 +++++++++++++++++------------------ docs/compare_civet_skimage.md | 2 +- setup.py | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index aa9203e..4a595f4 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Fetal CP Surface Extraction -[![Version](https://img.shields.io/docker/v/fnndsc/pl-fetal-cp-surface-extract?sort=semver)](https://hub.docker.com/r/fnndsc/pl-fetal-cp-surface-extract) -[![MIT License](https://img.shields.io/github/license/fnndsc/pl-fetal-cp-surface-extract)](https://github.com/FNNDSC/pl-fetal-cp-surface-extract/blob/main/LICENSE) -[![ci](https://github.com/FNNDSC/pl-fetal-cp-surface-extract/actions/workflows/ci.yml/badge.svg)](https://github.com/FNNDSC/pl-fetal-cp-surface-extract/actions/workflows/ci.yml) +[![Version](https://img.shields.io/docker/v/fnndsc/pl-fetal-surface-extract?sort=semver)](https://hub.docker.com/r/fnndsc/pl-fetal-surface-extract) +[![MIT License](https://img.shields.io/github/license/fnndsc/pl-fetal-surface-extract)](https://github.com/FNNDSC/pl-fetal-surface-extract/blob/main/LICENSE) +[![ci](https://github.com/FNNDSC/pl-fetal-surface-extract/actions/workflows/ci.yml/badge.svg)](https://github.com/FNNDSC/pl-fetal-surface-extract/actions/workflows/ci.yml) Fetal brain cortical plate surface extraction using CIVET marching-cubes (`sphere_mesh`). @@ -10,7 +10,7 @@ Fetal brain cortical plate surface extraction using CIVET marching-cubes (`spher ## Abstract -`pl-fetal-cp-surface-extract` consumes binary volumetric `.mnc` brain masks to produce +`pl-fetal-surface-extract` consumes binary volumetric `.mnc` brain masks to produce surfaces as `.obj` files with standard connectivity (81,920 triangles). This program is suitable for targeting the **inner cortical plate** surface (gray-white matter boundary) of high-quality human fetal brain MRI segmentation for subjects between 23-35 gestational @@ -21,11 +21,21 @@ weeks of age. Polygonal surface mesh representations of brain hemispheres are useful for measuring cortical thickness, image registration, and quantitative regional analysis. -## Marching Cubes +## Surface Extraction Algorithm + +1. Preprocess mask using `mincmorph` to fill in disconnected voxels (improve mask quality) +2. Marching-cubes -> spherical topology surface mesh with unknown number of triangles +3. Calculate distance error +4. _If_ maximum distance error is too large, _then_ redo marching-cubes with subsampling +5. Sphere-to-sphere interpolation -> resample mesh to standard connectivity of 81,920 triangles, preserving morphology +6. Calculate smoothness error +7. Run `adapt_object_mesh` to achieve desired smoothness. Number of iterations is predicted by a regression + +### Marching Cubes We have evaluated two implementations of marching-cubes: -- [scikit-image](https://github.com/FNNDSC/pl-fetal-cp-surface-extract) +- [scikit-image](https://github.com/FNNDSC/pl-fetal-surface-extract) - [CIVET](https://github.com/FNNDSC/ep-sphere_mesh) We found that CIVET's implementation of the marching-cubes algorithm, `sphere_mesh`, is @@ -33,17 +43,7 @@ We found that CIVET's implementation of the marching-cubes algorithm, `sphere_me than scikit-image's implementation, which requires FWHM blurring of the volume. Moreover, `sphere_mesh` guarantees a spherical topology. -## Surface Extraction Algorithm - -1. Preprocess mask using `mincmorph` to fill in disconnected voxels (improve mask quality) -2. Marching-cubes -> spherical topology surface mesh with unknown number of triangles -3. Calculate distance error -4. _If_ maximum distance error is too large, _then_ redo marching-cubes with subsampling -5. Sphere-to-sphere interpolation -> resample mesh to standard connectivity of 81,920 triangles, preserving morphology -6. Calculate smoothness error -7. Run `adapt_object_mesh` to achieve desired smoothness. Number of iterations is predicted by a regression model - -### Estimation of: How much smoothing? +### How much Smoothing? Estimation We developed a model which predicts the number of `adapt_object_mesh` smoothing iterations necessary, given a desired smoothness error threshold. The model was created from the experiment described here: @@ -56,7 +56,7 @@ The model was created from the experiment described here: 1. https://github.com/FNNDSC/ep-premc-mincmorph 2. https://github.com/FNNDSC/pl-nums2mask 3. https://github.com/FNNDSC/pl-subdiv-minc TODO -4. pl-fetal-cp-surface-extract +4. pl-fetal-surface-extract 5. pl-extracted-surface-asp TODO