Drawing line through spinal canal using CT

Hi all,

Is there an automatic way to draw a cranio-caudal line (using CurveMaker) through the spinal canal using CT slices? We are able to easily generate a detailed 3D model of the vertebral column by thresholding and isolating an island, but need a programmatic way of placing fiducials within the central canal (perhaps at the centroid) for a clinical research project. Currently, our method is to just eyeball the center of the canal on axial/sagittal slices, which is slow and inaccurate.

Thanks so much! Given that this is my first post, I apologize for breaking any forum conventions.

Good first post question :+1: Maybe post some screenshots so we have an idea of the data you are working with and what your segmentations look like so far.

If you can get a reasonable segmentation of the spinal canal you might be able to use the VMTK extension for that: https://github.com/vmtk/SlicerExtension-VMTK

1 Like

Hi Steve, thanks for your reply!

Here is a screenshot of a sample CT with a minimal model of what we are able to do so far. I placed 5 fiducials, 3 of which are shown on the sagittal slice, just to illustrate a rough curve (blue). Ideally we want to have as many points as is reasonable because we want to measure the curvature at precise locations along the spinal cord for a ton of spine CTs.

The centerline function in the VMTK extension looks like it could be exactly what we need. Unfortunately, I’m not sure the best way to segment the isolated central canal. The adjacent tissue density is too uniform, so any of my attempts to threshold give pretty useless segmentations. This seems like an entirely separate problem than my original question about drawing a centerline (which seems to be solved). But do you have any suggestions for how we could get a reasonable segmentation of the central canal itself?

For now, it doesn’t really matter that the vertebrae are not entirely thresholded since the representation of the vertebral column is currently purely illustrative. I originally thought we could use it to extract a position within the hypodense canal, but that does not seem feasible.

We appreciate the help - thanks for looking after this forum, Steve! I’ll mark your original post as the solution to my original problem!

Soft tissue contrast on CT is not great, so in general it is hard to constraint region growing. However, this is a special case: the segmented object’s shape is smooth and it is only connected to similar-intensity regions through thin canals, so it is possible to prevent leaking via intensity and spatial connectivity and smoothness constraints implemented in “Local threshold” effect in Segment editor. Once the spinal canal is segmented, centerline extraction is fully automatic. See this video for step-by-step instructions:

What is the clinical application? If spinal canal centerline is only a surrogate and you are actually interested in measuring curvature and torsion of the spinal column then you may consider placing markup points on the facet joints (it should be very quick on volume rendering of bones) and computing the angles from these points.

1 Like

Local thresholding worked very well - it is difficult to fully prevent leaking but parameter tuning + smoothing should eventually do the trick for us. Thanks so much for pointing out this extension!

Broadly, the clinical application is to analyze spine biomechanics using flexion-extension CTs. You are absolutely correct that the spinal canal centerline is just a surrogate, although we are more interested in the properties of the spinal cord itself versus the vertebral column. That might be an irrelevant distinction, though, and using the facet joints as an alternative proxy is a really good idea. We might try all of these methods (eyeball, centerline, facet joint) and compare results.

Thanks so much to both of you! This was immensely helpful and time-saving.

1 Like

You might consider using ultrasound for 3D spine imaging, as you don’t need to worry about radiation dose and you can acquire images in any patient position (not just lying but standing, sitting, etc.). There is a Slicer-based prototype for this, which works quite well. @ungi can give you more details if you were interested.

Here is an example of an ultrasound bone surface scan of a phantom (of course in patients there is a lot of signal from soft tissues over the bone, but the bone surface can be extracted using automatic filtering):

1 Like

Whoa, this is fascinating - are there any studies in your lab that use this as the primary model acquisition modality? I’m not sure we can relate this to the current CT analysis, but I think we might be able to generate an entirely new IRB study for this…

Yes. The main idea is to make this replace CT and X-ray for monitoring scoliosis patients. If you have CT image then you can reconstruct the entire spinal column based on landmarks identified on ultrasound.

@ungi can you recommend a few papers that describe latest studies and developments?

This is our most recent paper on tracked ultrasound for spine curve measurements:
All code and training data is public. I know there is minimal documentation, but and I’m happy to help if you have further questions.