# Vessel reconstruction from centerlines/radius

**URL:** <https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625>\
**Category:** Support\
**Created:** [September 29, 2025, 5:27pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625 "2025-09-29T17:27:42Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![gred](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/gred/32/81172_2.png) [@gred](https://discourse.slicer.org/u/gred)\
**Post date:** [September 29, 2025, 5:27pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/1 "2025-09-29T17:27:42Z")

</div>

Hello everyone,

I am working on segmenting small cerebral arteries for future CFD studies.

After segmenting the small arteries that interest me, I am looking for a way to reconstruct an ideal (cylindrical) geometry from the average radius obtained for each segment/centerline with a smoothed intersection (blending type).

I have tried to create cylinders around each centerline with VTK librairy, but the intersections between cylinders are bad.

 ![topic_1](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/b/8/b8d8552c733ded3c7e85e663655291c91a889cc5.png)

Is there a method already implemented in 3D Slicer that could address this?

Thank you very much.

Gred

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [September 29, 2025, 5:40pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/2 "2025-09-29T17:40:53Z")

</div>

I’d suggest making a distance transform from the centerlines and then thresholding that to make the surface.

---

<div class="post-metadata">

**Author:** ![mau\_igna\_06](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/mau_igna_06/32/9056_2.png) [@mau\_igna\_06](https://discourse.slicer.org/u/mau_igna_06)\
**Post date:** [September 30, 2025, 2:58pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/3 "2025-09-30T14:58:57Z")

</div>

Hi, there is a vtk filter that should help a bit in this situation:

> **[VTK: vtkTubeBender Class Reference](https://vtk.org/doc/nightly/html/classvtkTubeBender.html#details)**

---

<div class="post-metadata">

**Author:** ![gred](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/gred/32/81172_2.png) [@gred](https://discourse.slicer.org/u/gred)\
**Post date:** [September 30, 2025, 3:36pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/4 "2025-09-30T15:36:57Z")

</div>

Hi Pieper, by making a distance transform from the centerlines, do you mean somethink like polyball modelling along the centerlines and get the isosurface?

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [September 30, 2025, 5:56pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/5 "2025-09-30T17:56:24Z")

</div>

I’ve never used the polyball feature of vmtk, but maybe it would work. I was thinking you can just fill a volume with the distance to the closest vessel segment and threshold that. There are probably many ways of doing this depending on how efficient you need it to be.

---

<div class="post-metadata">

**Author:** ![eNable\_Polska](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/enable_polska/32/3275_2.png) [@eNable\_Polska](https://discourse.slicer.org/u/eNable_Polska)\
**Post date:** [October 2, 2025, 6:04pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/6 "2025-10-02T18:04:07Z")

</div>

> [@pieper](#):
>
> thresholding

Could you describe in more detail what you mean by “thresholding”? Perhaps a use case? I don’t quite understand what you mean, and I have a similar problem to the thread’s creator.

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [October 2, 2025, 6:45pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/7 "2025-10-02T18:45:33Z")

</div>

I mean using the threshold tool in the segment editor. Or for creating a mesh from a distance transform you could use the GrayscaleModelMaker directly. Just set a threshold for the isosurface distance you want.

---

<div class="post-metadata">

**Author:** ![gred](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/gred/32/81172_2.png) [@gred](https://discourse.slicer.org/u/gred)\
**Post date:** [October 2, 2025, 8:46pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/8 "2025-10-02T20:46:01Z")

</div>

I’m still stuck on 3D reconstruction with smoothing and physiological connections. I’ll take a look at greyscalemodel.

If you have any other ideas, please feel free to share them.

Thank you very much for your feedback.

---

<div class="post-metadata">

**Author:** ![gred](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/gred/32/81172_2.png) [@gred](https://discourse.slicer.org/u/gred)\
**Post date:** [October 13, 2025, 2:23pm UTC](https://discourse.slicer.org/t/vessel-reconstruction-from-centerlines-radius/44625/9 "2025-10-13T14:23:27Z")

</div>

Hello there,

I have finaly managed to obtain what I wanted by doing the following:

1. creating cylinders around each centerline curve with a mean radius taken from the centerline quantification table
2. converting to segment node and fill holes
3. Finally converting it to model.

It is not the best and most obvious way to do it but the result is great.
