Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PreFitTube module. #138

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
26 changes: 26 additions & 0 deletions Docs/EditCenterline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Edit centerline

This module creates a Shape::Tube markups node along an input arbitrary markups curve that represents the axis of a non-aneurysmal artery, a centerline model or a centerline curve generated by the ExtractCenterline module. The control points of the tube can be further repositioned to represent the best *estimate* of the arterial wall.

![Example](EditCenterline_0.png)

### Usage

For an arbitrary curve, select 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.

For a centerline model or a centerline curve, select an output Shape::Tube node and the number of control point pairs for the Tube.

After applying, the resulting 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 an arbitrary curve:

- 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/EditCenterline_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