Vessel segmentation

Hey! I need help because I’m just starting with Slicer3D. I have to segment the carotid arteries from CT images (80kV and 140kV). All images with contrast. I tried with Vesselness Filtering but did not get the expected results. Can somebody help me and explain how to do it?
Below is a photo of what I was able to do manually (tiring and not accurate)

I have rather quick and good results with FloodFilling from SlicerSegmentEditorExtraEffects available as an extension.

With ‘Intensity tolerance’ between 90 and 130, and ‘Neighbourhood size’ between 2 and 5, a few clicks on the contrast media would isolate the lumen quite nicely. The result is not perfect for things like 3D printing. Many factors influence the result, like the contrast homogeneity, proximity of bones and too much contrast in the veins. In fact, I rarely do that for the carotids (for surgical planning).

There are certainly other techniques, it’s the fastest I’ve seen and I found it quite reliable.

1 Like

Thank you very much for your answer! Could I ask for accurate information about FloodFilling from SlicerSegmentEditorExtraEffects. Where can I find this extension? How to use it?

niedz., 31 maj 2020, 19:41 użytkownik SET via 3D Slicer Community <> napisał:

The simplest way to install an extension is, well, using the ‘Extension manager’ menu.

Using it is straightforward :

  • Go to the ‘Segment Editor’ module
  • Add a new segment
  • Select Flood Filling tool
  • Set its two parameters as stated above
  • Click on the contrast in the 2D views, a few clicks might be needed

Undo if necessary, and adjust the two parameters of Flood Filling.
Destroy everything and start again.


Hi i have just got into the 3d slicer program and have been working on the same topic(vessel segmentation) I tried to follow your instructions on the post and had question on doing the contrast in 2d views. What does this step mean and how should I perform this? Your answer would make my day. Thank you

Please check this short video.

1 Like

What are you doing for the carotids? Thank you for this interesting thread.

I’ll detail a reply when I resume work from summer vacation, too complicated now, sorry.

1 Like


In general, when we receive patients in consultation, carotid stenosis assessment has already been worked out by duplex ultrasound in the hands of the angiologist here (or radiologist in many countries), or with automatic measurements on the radiologist’s platform.

I use Slicer to analyze all four supra-aortic trunks entirely, using slice views and volume rendering.

Reformatting the slice views with intersection and interaction activated is fast and very handy.

Volume rendering gives a 3D synthetic summary of the arterial status that neither slice views nor traditional angiograms can produce. The picture below shows main information obtained from volume rendering at a single glance. Combining the 3D view and placing slice views precisely with ‘Shift + mouse move’ become more informational to the surgeon at targeted places.

To analyze the Willis circle, volume rendering is gold. It cannot be studied in an efficient way, even less in a reproducible way, with slice views only. The arteries of the circle of Willis are tiny, and intensities of veins in the skull are quite close to those of the arteries (fortunately, veins in the skull are not satellite to the arteries). The picture below shows these very well.

More recently, it is possible to draw a theoretical arterial wall around the plaque. It’s manual, completely observer dependent. This allows a better comprehension of the carotid bulb, as shown below.

The latter becomes very handy to help measuring the maximum stenosis should the need arise (discrepancy between results given by the angiologist and the radiologist, or surgeon disagreeing with both, or a requirement of clinical studies on patient groups, or …). We can use the many tools available in SlicerWMTK extension for this, as shown below.


If we don’t need to measure anything using segments, everything is quickly done. Else, it takes some or much time, and should not and cannot be done for every patient.

In the future, I’ll probably try to exploit the custom Shape markups in a yet-to-be-created module, to measure a short stenosis in 3D. It takes time, which is a significant factor for all of us. I’ve got some vague ideas for now. To my knowledge (vascular surgery is far reaching too!), 3D stenosis measurement has not been used clinically yet. So it might be one more tool to investigate, whatever it may finally worth.


@chir.set .

This is stunning, beautiful work. Thank you !
I use volume rendering (CT-Muscle preset) a lot these days for pulmonary vessels. Maybe we can bundle our efforts.

Many questions arise, two may be trivial:
How do you add the label texts with arrows and the orientation figure ?

BTW Surgeons never disagree.

The label texts are from a custom Markups. Here, there’s one node for one arrow. It’s not perfect, yet sufficiently helpful.

The orientation marker is Slicer built-in, see ‘Application settings/Views’.

1 Like

Nice. Thank you @chir.set .

How are you supposed to implement those? During a Slicer build?

Slicer must be built first, then any extension can be built against the Slicer build tree and packaged. I understood from previous posts that you are fluent with C++, so it should not be a problem for you.

In any case, it’s quite straightforward on Linux :

cd ExtraMarkups
mkdir build
cd $_
cmake -DSlicer_DIR:PATH=/path/to/src/Slicer-SuperBuild/Slicer-build -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo ../
make -j8
make package