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).
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?
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.
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.
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.
I cannot make VMTK centerline extraction work for multiple point (>2) on aorta example from the library. I have seeded on point, used auto detect to find more, deleted some non relevant. Once I try to run the module. It gets stuck in “Generate curves and quantification tables” for tens of minutes. Allocated memory grows and grows: currently like 45 Gb out of 128 Gb.
I am using recently downloaded version for windows from slicer.org.
@Pavel_Zhabyeyev, the VMTK extension has been working for months now, so it is likely unrelated to the earlier posts on this thread. I would suggest reposting this as a new topic. It is more likely to get attention that way.
Mike, I am not alleging that VMTK is terribly broken. Most likely, I did not set one of the parameters properly or did not initialize something somewhere. I was trying to follow the YouTube tutorial New vessel branch extraction module for 3D Slicer - YouTube
It seems I set everything as it was described there, but the slicer was stuck / unresponsive.