VMTK centerline extraction trouble?

Operating system: Windows 10 (20H2)
Slicer version: 4.11.20210226
Expected behavior: Extraction of centerline within a model
Actual behavior: Centerline curve is not constrained to the model space

Hello all -

Wondering if anyone can help me troubleshoot extracting a centerline from a structure (in this case, a segmented spiral ganglion). I’m doing my best to follow along with some of the tutorial videos posted by PerkLab, but I am having some difficulties in extracting a centerline curve (see images hopefully attached). The centerline model seems to have been created successfully, but the curve itself only contains three control points and exceeds the bounds of the model - what steps can I take to constrain the curve inside my target model?

Any help in troubleshooting would be greatly appreciated!

The centerline curve looks nice. Maybe the two endpoints are connected because you created a closed curve? Or maybe the smooth curve that connects the two endpoints are the centerline curve and it cannot follow the actual curve because you have chosen polynomial interpolation interpolation instead of spline? It is hard to guess. It would help if you could share your scene file (saved as .mrb).

Hi Andras-

Unfortunately, it looks like I’m actually not authorized to share my .mrb scene here (looks like I’m limited to jpg, jpeg, png, gif, mp4 on this forum, but am happy to image/send anything that might be useful!) ***EDIT: here is a dropbox link

Apologies for any confusion, the spiral within the model is the centerline model, and the arc connecting the endpoints is the centerline curve (see attached images).

I will certainly look into polynomial vs spline interpolation. Looking at the centerline curve, it appears the curve is a spline with three control points (the two endpoints and one in the center of the model). Based on the video tutorials I’ve found, this looks to be a small amount of control points - perhaps this has something to do with the issue?

In any case, thank you for your time and help!

EDIT: fixed the uploaded files, hopefully this makes things a little more clear

Thank you, the scene file was very useful. The problem was that the curve’s sampling distance was hardcoded to 1mm, which worked well in general, but for your tiny structure of about 1mm in size it meant that only a few control points were used to define the curve.

I’ve added an option to set curve sampling distance in Advanced section (the change will be available in the extensions manager tomorrow). If you set curve sampling distance it to 0.01 then the curve will be extracted accurately.

1 Like

Oh wow, this is probably why I was having trouble with this as well - the features I look at are often 10 microns in diameter. I will have to try this again.

1 Like

Update: This fix worked perfectly, I’m able to set the sampling distance and extract the curve successfully. Thanks all!

1 Like

I don’t see SlicerVMTK in the Extensions Manager for the last few nightly builds. Did it build ok?

Thanks!

It will probably be missing for nightlies until it gets ported for VTK9. It will surely come, as time permits, the devs are certainly very busy.
If you need recent Slicer functionalities and SlicerVMTK, both must be built with VTK8.

Yes, there’s a quirky build error that needs to get tracked down. VMTK happens to be one of the more complex extensions since it provides it’s own vtk and itk subclasses and there’s something going wrong with the python build configuration variables.

https://slicer.cdash.org/viewBuildError.php?buildid=2216202