Skip to content

Commit

Permalink
Add aorta segmentation recipes
Browse files Browse the repository at this point in the history
  • Loading branch information
lassoan committed Mar 23, 2019
1 parent d6243e3 commit 47a2f04
Show file tree
Hide file tree
Showing 20 changed files with 138 additions and 4 deletions.
61 changes: 61 additions & 0 deletions AortaFastMarching/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Overview
--------

- Task: Segment aorta on CT. This method produces results quickly, without requiring too much user input. The same method can be used for segmenting other structures that have a good contrast compared to the background but there are other structures with similar intensity nearby.
- Imaging modality: any


Prerequisites
-------------

- SegmentEditorExtraEffects extension is installed.
- Contrast-enhanced CT volume is loaded.

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

- Click Paint effect and paint a few strokes inside the aorta.
- Click Fast Marching effect.
- Set `Maximum volume` to 1% (since volume of the aorta is very small compared to the total volume of the CT image).
- Click `Initialize` to compute segmentation preview.
- Adjust segment volume slider to achieve complete segmentation, but not too high value (to prevent leaking out of the aorta).
- Click `Apply` when segmentation preview is satisfactory to finalize the segmentation.
- Apply `Smoothing` effect, `Median` method to fill in missed voxels and smooth outer surface of the vessel.

Tips:
- If Fast Marching not visible then install SegmentEditorExtraEffects extension and restart the application
- To make paint strokes more visible, you can deactivate Paint effect and left-click-and-drag in the slice view to change background volume window/level.
- To see preview in 3D view: Click the down-arrow button on the right side of `Show 3D` button and disable `Surface smoothing` (this will make updates of 3D visualization very fast). Click `Show 3D` button.
- If a large piece of the aorta is missed then click `Cancel`, use Paint effect to paint inside the area that is missing, then re-initialize Fast Marching effect as described above.

Example
-------

- Download `CTACardio` sample data set
- Go to `Segment editor` module, click `Add` button to create a new segment
- Select `Paint` effect and paint a few strokes inside the aorta.

![Seeds painted inside the aorta.](image-001.png)

- Click Fast Marching effect
- Set `Maximum volume` to 1% (since volume of the aorta is very small compared to the total volume of the CT image)
- Click `Initialize` to compute segmentation preview.
- Adjust segment volume slider to achieve complete segmentation, but not too high value, to prevent leaking out of the aorta.

![Seeds painted inside the aorta.](image-002.png)

- To see preview in 3D view: Click the down-arrow button on the right side of `Show 3D` button and disable `Surface smoothing`, then click `Show 3D` button.

![Disable surface smoothing for fast updates in 3D view.](image-003.png)

![Preview segmentation result in 3D.](image-003.png)

- Click `Apply` when segmentation preview is satisfactory.
- Apply `Smoothing` effect, `Median` method to fill in missed voxels and smooth outer surface of the vessel.


![Final result.](image-005.png)

Final result:

![Animation of final result.](image-006.gif)
Binary file added AortaFastMarching/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 AortaFastMarching/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 AortaFastMarching/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 AortaFastMarching/image-004.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 AortaFastMarching/image-005.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 AortaFastMarching/image-006.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
71 changes: 71 additions & 0 deletions AortaMaskedGrowFromSeeds/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
Overview
--------

- Task: Segment aorta on CT. This method can produce high-accuracy results - the more user inputs are provided, the more accurate the results will be. The same method can be used for segmenting other structures that have a good contrast compared to the background but there are other structures with similar intensity nearby.
- Imaging modality: any.


Prerequisites
-------------

- SegmentEditorExtraEffects extension is installed.
- Slicer-4.10 or later.

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

- Create a segment for aorta and use Paint effect to paint a few strokes inside the aorta.
- Select Threshold effect, set slider to highlight the aorta, and click `Use for masking`.
- Create a segment for all other structures and paint in regions that have similar intensity as the aorta but it is not the aorta (bones, other vessels, etc.).
- Select `Grom from seeds` effect and click `Initialize` to compute segmentation preview.
- Inspect segmentation. If any region is misclassified then paint more strokes using the aorta or the other segment.
- Click `Apply` when segmentation preview is satisfactory to finalize the segmentation.
- Apply `Smoothing` effect, `Median` method to fill in missed voxels and smooth outer surface of the vessel.

Tips:
- To make paint strokes more visible, you can deactivate Paint effect and left-click-and-drag in the slice view to change background volume window/level.
- To see preview in 3D view: Click the down-arrow button on the right side of `Show 3D` button and disable `Surface smoothing` (this will make updates of 3D visualization very fast). Click `Show 3D` button.
- If a the segmentation does not extend to the entire aorta then paint strokes in the missing parts and reinitialize (click `Cancel` and then click `Initialize`).
- To quickly activate/deactivate `Paint` effect hit `1` key.
- To quickly switch between segments, effect hit `q` or `w` key.

Example
-------

- Download `CTACardio` sample data set
- Go to `Segment editor` module, click `Add` button to create a new segment
- Select Threshold effect, set slider to highlight the aorta, and click `Use for masking`.

![Thresholding defines intensity range for aorta.](image-001.png)

- Double-click `Color` column to show segment terminology/color selector, typ `aorta`, then hit `Enter` (or click `Select`)

![Define standard terminology and color for aorta segment.](image-002.png)

- Select `Paint` effect and paint a few strokes inside the aorta using aorta segment, and paint outside the aorta using the other segment. Regions painted with aorta segment will be included, regions painted with the other segment will be excluded from the final aorta segmentation.

![Paint seeds inside and outside the aorta using aorta and other segment.](image-003.png)

- Click `Initialize` to compute segmentation preview.

![Segmentation preview is shown after clicking Initialize.](image-004.png)

- If a non-aorta region (e.g., ribs, heart, or other vessels) are shown in the preview as part of the aorta, then paint it over using the other segment. If part of aorta region is missed in the preview as part of the aorta, paint it over using the aorta segment.

![Heart ventricles and atria excluded by painting a stroke with the other segment.](image-005.png)

- To see preview in 3D view: Click `Show 3D` button next to the `Display` inputs/outputs slider.

![Preview segmentation result in 3D.](image-006.png)

- Paint strokes using aorta and other segment as needed. Click `Apply` when segmentation preview is satisfactory.

![Segmentation finalized.](image-007.png)

- Apply `Smoothing` effect, `Median` method to fill in missed voxels and smooth outer surface of the vessel.

![Final result.](image-008.png)

Final result:

![Animation of final result.](image-009.gif)
Binary file added AortaMaskedGrowFromSeeds/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 AortaMaskedGrowFromSeeds/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 AortaMaskedGrowFromSeeds/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 AortaMaskedGrowFromSeeds/image-004.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 AortaMaskedGrowFromSeeds/image-005.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 AortaMaskedGrowFromSeeds/image-006.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 AortaMaskedGrowFromSeeds/image-007.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 AortaMaskedGrowFromSeeds/image-008.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 AortaMaskedGrowFromSeeds/image-009.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions Craniotomy/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Overview
--------

Task: Cut a hole on the skull to simulate a craniotomy. The same method can be used anytime a segment has to be partitioned to multiple segments.
Imaging modality: any
- Task: Cut a hole on the skull to simulate a craniotomy. The same method can be used anytime a segment has to be partitioned to multiple segments.
- Imaging modality: any


Prerequisites
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ Recipes for solving common segmentation tasks using 3D Slicer

- [Skin surface extraction](SkinSurface/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)

External links:
- Whole heart segmentation from CTA:
Expand Down
4 changes: 2 additions & 2 deletions SkinSurface/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Overview
--------

Task: Extract skin surface without holes inside the segment. Important for 3D printing or surface-based registration.
Imaging modality: CT, MRI
- 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.

Expand Down

0 comments on commit 47a2f04

Please sign in to comment.