Hello Ian,
 here's how things work (we should actually have a page where these things
are recapped because they're not all that intuitive at a first glance):

vmtkdistancetocenterlines computes the minimum Euclidean distance of each point 
of
the surface from a set of centerlines.

This is not always what you want: for instance, if you have a vessel with a 
smaller 
vessel branching off it (the typical example is the aorta with renal arteries) 
you will
smaller distance values on the surface of the aorta as it approaches the renal 
artery.
What happens is that in those regions the aorta is closer to the renal artery 
centerline
but simply because the aorta is large and the renal artery is small.

To circumvent this problem you can use -useradius 1. With this switch, you will
always have Euclidean distance to the centerline on the surface, but the what is
the "minimal" Euclidean distance is determined in a different way: for each 
point on
the surface, consider the tube generated by the envelope of the maximum 
inscribed
spheres along the centerline, determine the sphere whose surface is closer to 
the
surface point and get its center on the centerline. At this point, compute the 
Euclidean
distance of the surface point from that centerline point.
If you think about it, this essentially solves the problem with small side 
branches (at least 
for reasonably shaped vessels).

Last, what -centerlineradius 1 does is the same as the last point above, but 
instead
of associating the Euclidean distance to the surface point, it associates the 
radius
of the maximum inscribed sphere. This is useful if you are using this script 
for building
a sizing function for mesh generation, and you want to avoid the mesh to 
coarsen in the
presence of bulgings (or even saccular aneurysms), since maximum inscribed 
spheres
are less sensitive to those (if they do not involve too large a portion of the 
vessel).

I hope this solves your doubts.

Best regards


Luca


On Mar 14, 2011, at 11:35 PM, Ian Campbell wrote:

> Hello,
> 
> I am working with the vmtkdistancetocenterlines function to compute 
> vessel radius at a site of bifurcation. Reading through the 
> documentation, I can't figure out whether I should be using the option 
> -useradius 1 and/or -centerlineradius 1. Adding either of these options 
> does seem to affect the contents of the DistanceToCenterlines variable, 
> though the only significant differences are right at the site of 
> bifurcation. What are these options doing? I would assume that 
> DistanceToCenterlines would be based on radius from centerlines, so what 
> is -useradius doing? Am I understanding this incorrectly?
> 
> In case it helps, this is the pypeline I am using right now:
> 
> vmtkmeshreader -ifile /home/campbell/data.vtu --pipe vmtkmeshtosurface 
> --pipe vmtkcenterlines -seedselector openprofiles -endpoints 1 --pipe 
> vmtkdistancetocenterlines -ofile /home/campbell/foo.vtp --pipe 
> vmtksurfacewriter -f pointdata -ofile /home/campbell/bar.txt
> 
> Thanks,
> Ian
> 
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> vmtk-users mailing list
> vmtk-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/vmtk-users


------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
vmtk-users mailing list
vmtk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Reply via email to