Skip to content

Commit

Permalink
Add EditCenterline module.
Browse files Browse the repository at this point in the history
This module pre-fits a Shape::Tube markups node along an input markups curve
that represents the axis of a non-aneurysmal artery.
  • Loading branch information
chir-set committed Jan 4, 2025
1 parent 5bdf9f2 commit 6072e63
Show file tree
Hide file tree
Showing 10 changed files with 838 additions and 0 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ add_subdirectory(ClipVessel)
if(SlicerVMTK_USE_ExtraMarkups)
add_subdirectory(CrossSectionAnalysis)
add_subdirectory(StenosisMeasurement3D)
add_subdirectory(EditCenterline)
endif()

#-----------------------------------------------------------------------------
Expand Down
18 changes: 18 additions & 0 deletions Docs/PreFitTube.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Pre-fit tube

This module pre-fits a Shape::Tube markups node along an input markups curve that represents the axis of a non-aneurysmal artery. The control points of the tube must be further repositioned to represent the best *estimate* of the arterial wall.

![Example](PreFitTube_0.png)

### Usage

Select a markups curve node, a scalar volume of a CT angiogram and a target dimension profile. Select an output Shape::Tube node, and optionally a segmentation node to keep the segment mask. After applying, the resulting Shape::Tube node may be post-processed to position the control points on the arterial wall.

### Notes
- This extension is a requirement: [ExtraMarkups](https://github.com/chir-set/SlicerExtraMarkups).
- Use cropped volumes to save time.
- For tiny targets, resampling the volume to increase the resolution may help.
- The input curve should represent the axis of the artery.
- For diseased arteries, the more the curve passes through calcifications and soft lesions, the better for the segment mask.
- An output segmentation node can be specified to view the segment mask.

Binary file added Docs/PreFitTube_0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions EditCenterline/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#-----------------------------------------------------------------------------
set(MODULE_NAME EditCenterline)

#-----------------------------------------------------------------------------
set(MODULE_PYTHON_SCRIPTS
${MODULE_NAME}.py
)

set(MODULE_PYTHON_RESOURCES
Resources/Icons/${MODULE_NAME}.png
Resources/UI/${MODULE_NAME}.ui
)

#-----------------------------------------------------------------------------
slicerMacroBuildScriptedModule(
NAME ${MODULE_NAME}
SCRIPTS ${MODULE_PYTHON_SCRIPTS}
RESOURCES ${MODULE_PYTHON_RESOURCES}
WITH_GENERIC_TESTS
)

#-----------------------------------------------------------------------------
if(BUILD_TESTING)

# Register the unittest subclass in the main script as a ctest.
# Note that the test will also be available at runtime.
slicer_add_python_unittest(SCRIPT ${MODULE_NAME}.py)

# Additional build-time testing
add_subdirectory(Testing)
endif()
Loading

0 comments on commit 6072e63

Please sign in to comment.