Radius of Centreline Curve

Hello, I am trying to find the radius of vessels using the extract centreline module. From reading previous posts on 3D slicer, I am able to find the radius of vessels if I create a centreline model using the following code:

c = getNode(‘Centerline model’)
points = slicer.util.arrayFromModelPoints(c)
radii = slicer.util.arrayFromModelPointData(c, ‘Radius’)
for i, radius in enumerate(radii):
print(“{0},{1}”.format(points[i],radius))

However, is there any way to do the same but for centreline curves? I see there’s the slicer.util.arrayFromMarkupsCurvePoints() function but no function to find the data from the curve if I’m correct?
My second question is how reliable are these radius values? Maximum accuracy is vital to my project and I was trying to verify if these are the correct radii but to no avail.

As I understood, it’s the radius of the maximum sphere that can fit at a point of the centerline. It’s an algorithmic proposal of what can be calculated at this point.

The picture below shows a common situation : a cross-section of a pathological artery.

radius

The radius reported by the extract centerline module is that of the grey circle.
You may also be tempted to imagine the patent lumen’s diameter according to the white lines. Then you’ll need to measure by hand, or devise an algorithm to measure as per your project’s requirements.

1 Like