How to automatically segment multiple lumbar vertebrae thorugh the Python Interactor?

We have been researching and able to finally segment all the lumbar vertebrae manually(but we used scissors and erase, something Python cannot do on a case by case basis). We seek assistance in now automating that process. Do we need to add extensions for flood fill? If so, how do we do download those extensions to the extension wizard?

You can find Flood fill and other effects in SegmentEditorExtraEffects extension.

In the last 20-30 years, hundreds of researchers tried to implement fully automatic method for individual vertebra segmentation on CT images using “classic” methods, but they all mostly failed. So, I would not recommend to try to automate your current semi-automatic workflow by trying to replace the remaining manual steps.

If you need to segment a few hundred cases then probably the fastest is to use your current semi-automatic segmentation workflow. Maybe tune it a it further to ensure that it is as convenient as possible (if you describe your current workflow in detail and the main pain points then I can give advice for streamlining it).

If you need to segment thousands or tens of thousands of cases (or you just want to have a fully automatic segmentation method for other reasons), then you can use the first few hundred semi-automatic segmentation results to train a neural network, which can then automate the remaining cases fully automatically. This is of course not as simple as it sounds, but is still the most promising approach known to date.

1 Like

Thank you! One last question, we realized that the process only needs to be semi-automatic as the user will identify a point on the lumbar to segment that singular vertebra. Is there a way using the Python Interactor to mark points at certain coordinates with black space between the vertebrae?

Yes, you can easily add a button to your module’s user interface that allows the user to place a markup point. See examples in the script repository.