Level tracing segment editor effect

I was wondering if there was a way to get an option in level tracing for the Segment Editor to allow for the corrections to the segmentation performed in the 3rd dimension so that the level tracing can happen outside of the plane you are working with? Also possibly an effect to thread a tubelike segmentation into a gap of a prior segmentation that isn’t straight. I know there is the scizzors option to fill straight lines but it would be useful to start a tubelike segmentation for something like the spinal cord?

There is a 3D version of the level tracing algorithm, which may be usable, but integration would take some time and display of 3D preview may be slow. The level trace effect is ported from the legacy Editor module, but compared to all the other effects, I don’t find it very useful. We probably have to either have to improve it or move out from the core (and have it available in some optional extension, for those who find it useful).

For what kind of segmentation did you find level tracing effect useful?

You can create a tube-like segmentation using scissors with circle shape. If you draw in a slice view, you can even limit the depth.

I find the level tracing useful for my noisy images of the lungs to get a little more of the details, as well as the airways. Every time I use the scissors effect in the slice viewers the effect just generates a tube through the entire 3d structure. Is there an option I should be choosing? Also besides the surface cut is there a way to expand or contract a certain region of a segmentation by like pushing or pulling the 3d or 2d visualization if the segmentation is missing a portion?

You can restrict the Scissors effect cut “thickness” by the Slice cut option.

One obvious way is to use interpolate between segments. You segment on two or more slices in 2D and this effect fills all the other slices in 3D in between.

You can also expand or contract a segment using Margin effect. You can combine it with masking options to restrict the growth in various ways (stay inside/outside certain segments or intensity regions, etc).

If you can describe what is the exact problem that you try to solve, I can give more specific advice.

Did you know there is an extension specifically for lung images processing, and it can segment lungs automatically? Check out Chest imaging platform.

So the problem is that my images are non-contrast enhanced ct images of cadavers donated to my school. I’m slowly working on segmenting all the major organ systems.

Hey Andrey Federov, so I’m not finding the extension either for the chest imaging platform to install it on the nightly build I already have?

@stevenagl12 what platform are you on? Are you using the nightly package?

@jonieva it appears that CIP has build errors on Windows - see http://slicer.cdash.org/viewBuildError.php?buildid=1087165.

Yes I am using the nightly build. According to the CIP website I’m supposed to download the extension but it’s not there.

What operating system do you have?

I have Windows 10 on a desktop with 32gbs of ram and an i7 processor.

Can you please point me to the 3D version of the level tracing algorithm? is it public?

The underlying ITK code is N-dimensional so you can try it out. I never found the 3D mode very effective but it probably depends a lot on the data and task.

1 Like

Hi, I would welcome such a feature. Are there any plans of implementing this into 3D Slicer? I am segmenting a half cylinder that is not straight, so using the scissors is not working well for me. What I do now is go slice by slice using level tracing, but there are 200 slices, so it would be nice to have a checkbox that enables recursively spreading the level tracing to neighboring slices.

1 Like

You can use the scissors effect on arbitrary slice orientation. You can rotate slices by displaying slice intersections and Ctrl+Alt+Left-click-and-drag in a slice view.

If the cylinder is clearly distinguishable from the surroundings (which is very likely, if you find that level tracing works well) then you should be able to segment in 10-20 seconds using Grow from seeds, Local threshold, or Fast marching effects.

2 Likes

Is the three dimensional level tracing available in the current Slicer? If so, how to reach it?

Three-d level tracing never proved as useful as hoped. Maybe it was just an implementation issue. The underlying code should still exist in the low-level classes but some programming would be required to expose it.

When you use Level Tracing, you use trial and error to find a mouse position that leads to acceptable segmentation. This trial and error would take several magnitudes longer time (minutes instead of seconds) in 3D because there are many more points and also takes much longer to check the segmentation result in dozens of slices than a quick visual check in a single slice