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