Skip to content

Commit

Permalink
Add updated skin surface extraction recipe
Browse files Browse the repository at this point in the history
  • Loading branch information
lassoan committed Apr 21, 2020
1 parent 081f823 commit 996bef3
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 2 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Segmentation recipes for 3D Slicer

Recipes for solving common image segmentation tasks using [3D Slicer](https://www.slicer.org).

- [Skin surface extraction](SkinSurface/README.md)
- [Skin surface extraction](SkinSurface2/README.md)
- [Craniotomy (splitting segments)](Craniotomy/README.md)
- [Aorta segmentation (fast, using Fast marching)](AortaFastMarching/README.md)
- [Aorta segmentation (high-accuracy, using Grow from seeds)](AortaMaskedGrowFromSeeds/README.md)
Expand All @@ -19,3 +18,6 @@ External links:
- Femur and pelvis segmentation from CT:
- [Video tutorial](https://www.slicer.org/wiki/Documentation/Nightly/Training#Slicer4_Image_Segmentation)
- [Kitware's 3D Slicer segmentation tutorial slides](https://data.kitware.com/#item/5b0f9a308d777f15ebe1fc26)

Obsolete recipes (we have better tools now)
- [Skin surface extraction using region growing](SkinSurface/README.md)
2 changes: 2 additions & 0 deletions SkinSurface/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ Overview
- Task: Extract skin surface without holes inside the segment. Important for 3D printing or surface-based registration.
- Imaging modality: CT, MRI

**Important: This recipe is now obsolete. It is replaced by a [new recipe that uses `Wrap solifidy` effect](../SkinSurface2/README.md). The new recipe is much simpler and provides comparable or better results as this one.**

Usually there is strong contrast between tissue and air, therefore segmenting the skin surface should be easy, except there may be air inside body part or some tissues or fluids may have image intensity similar to air. Therefore, simple global thresholding may not always work.

Recommended workflow
Expand Down
43 changes: 43 additions & 0 deletions SkinSurface2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Overview
--------

- Task: Extract skin surface without holes inside the segment. Important for 3D printing or surface-based registration.
- Imaging modality: CT, MRI

Usually there is strong contrast between tissue and air, therefore segmenting the skin surface should be easy, except there may be air inside body part or some tissues or fluids may have image intensity similar to air. Therefore, simple global thresholding may not always work.

This recipe replaces an [earlier recipe that used `Flood filling` effect](../SkinSurface/README.md). This new recipe is much simpler and provides comparable or better results.

Recommended workflow
--------------------

- Use `Wrap solidify` effect (provided by `SegmentEditorExtraEffects` extension) with to segment outside air. Click anywhere in the outside air in slice views to segment the air. If not all areas are hightlighted then click in air regions that are not included and/or increase `Intensity tolerance` parameter. If segment leaks inside the tissue then click `Undo` and increase `Neighborhood size`.
- Use `Logical operators` effect / `Invert` operation to make the segment contain tissue instead of air
- Use `Scissors` effect and `Smoothing` effect to remove artifacts and noise

Example
-------

- Download `MRBrainTumor1` sample data set

![MRBrainTumor1](image-001.png)

- Go to `Segment editor` module, create a new segment

- Select `Threshold effect` effect, set range from about 110 to maximum (this selects skin surface and structures inside the head), then click Apply

![Thresholding result.](image-002.png)

- Remove small speckles of noise using `Islands` effect: choose `Keep largest island` option and click `Apply`

- Select `Wrap solidify effect`, leave region at default value (`Outer surface`)

- Reduce `Oversampling` value to 0.8x in `Advanced`section for faster computation and smoother surface (optional)

- Click `Apply`

![Smoothed result.](image-003.png)

Final result:

![Smoothed result.](image-004.gif)
Binary file added SkinSurface2/image-001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SkinSurface2/image-002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SkinSurface2/image-003.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SkinSurface2/image-004.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 996bef3

Please sign in to comment.