The interesting thing I've noticed is that the vessels where I had the 
"detached outlet" issue segfault, and the ones that meshed correctly don't.

I'll see if I can capture the centerlines of one of these problematic 
vessels into a .vtp, and post the vtp and the surface stl on dropbox 
later today.
-rd

On 03/11/2013 06:36 AM, Luca Antiga wrote:
> Hi Richard,
>   I need to see the data in order to tell you something sensible.
> Best,
>
> Luca
>
>
> On Mar 11, 2013, at 1:48 AM, Richard Downe wrote:
>
>> So, when I finally teased all the typos out of the source file I sent
>> you the other night, I got a single, main vessel centerline with none of
>> the branches.
>>
>> So today, I attempted to sue vmtkbranchextractor.
>>
>> If I fed the vmtkbranchextractor output directly into
>> vmtkcenterlineviewer, things looked more or less as they should (e.g.,
>> as a tree).
>>
>> When I tried to pass that result into vmtkmergecenterlines, I get a
>> segfault.
>>
>> Thoughts?
>>
>> -rd
>>
>> On 03/08/2013 05:24 AM, Luca Antiga wrote:
>>> Hi Richard,
>>>
>>> On Mar 7, 2013, at 11:42 PM, Richard Downe wrote:
>>>
>>>> On 03/07/2013 04:26 PM, Luca Antiga wrote:
>>>>> On Mar 7, 2013, at 9:44 PM, Richard Downe wrote:
>>>>>
>>>>>> Well...I'm not using vmtkbranchextractor.
>>>>>>
>>>>>> My branches and vessel are defined separately, and I merge them in a
>>>>>> pre-vmtk process.  I have centerlines a priori, but it is not a unified
>>>>>> centerline tree.  (I have until now been using source and target
>>>>>> points.  This works well in most vessels, but heavily branched ones
>>>>>> frequently drop a branch, often the largest one, during the run of
>>>>>> vmtkcenterlines, so after reading this thread, I concluded I wasn't
>>>>>> alone, and set about trying to reengineer it.)
>>>>> I'm not sure I fully understand. A screenshot would help.
>>>> I mean that the branches and vessel are segmented separately in different 
>>>> tools, and then projected into 3-d space using a variation on 
>>>> Frenet-Serret analysis.  I build a triangulated surface using CGAL from 
>>>> this point set, and using a python module I wrote myself, slurp this, 
>>>> along with the centerlines of the individual surfaces, into vmtk.
>>> I see now, thanks for the clarification.
>>>
>>>> The reason for this is that I work with coronary ultrasound.  The 
>>>> segmentation of both the vessel and the branches are each less 
>>>> straightforward than they are for, say, pulmonary CT.
>>>>
>>>> vmtkmeshgenerator failed outright until I began using vmtkcenterlines to 
>>>> help it calibrate the triangle and tetrahedral density.  (The ultimate 
>>>> goal is CFD analysis using Ansys Fluent).
>>> You could potentially specify a small absolute -edgelength, but surely 
>>> making the mesh density adapted to the radius is better.
>>>
>>>> In some heavily branched vessels, the outflow surface of one the branches 
>>>> shows up as unconnected to the rest of the mesh when I load it into 
>>>> fluent.  These are also generally vessels where vmtkcenterlines has 
>>>> convergence issues.
>>> Not sure I'm giving a sensible suggestion here, but consider using 
>>> vmtksurfacesubdivision before computing centerlines. Sounds you're 
>>> experiencing Voronoi degeneracy issues here.
>>>
>>>> So...I'm not sure how I would use vmtkbranchextractor here, unless I could 
>>>> feed my initial triangulation into it?
>>> Don't confuse vmtkbranchextractor with vmtkbranchclipper. The former just 
>>> splits centerlines (into branches and assignes GroupIds, TractIds, Blanking 
>>> and so on) based on the unsplit centerlines, it doesn't need a surface. The 
>>> latter splits the surface based on the split centerlines.
>>> vmtkbranchextractor should work with any set of polylines, as long as 
>>> they're arranged in a tree-like fashion (not as a network, rather with each 
>>> line running from the root to an outlet) and as long as a radius array is 
>>> provided on top of centerlines.
>>>
>>>> As such, I'm attempting what I realize is something of a hack, feeding 
>>>> centerlines and radius information that I have a priori into 
>>>> vtkvmtkMergeCenterlines in an attempt to get a proper vessel tree without 
>>>> having to rely upon vmtkcenterlines' procedure.
>>>>
>>>> I don't have the "blanking regions" stored anywhere, because it's not part 
>>>> of the workflow that leads up to this, but would be fairly trivial to 
>>>> surmise, as I could simply test each branch centerline point to see if it 
>>>> lies closer than vesselRadius[i] to vesselCenterline[i], for all i.
>>>>
>>>> Thus, my centerline *is* already broken into branches, but not using 
>>>> vmtkbranchextractor.
>>> Ok.
>>>
>>>> Attached is a screenshot of the result of running it with what were 
>>>> clearly mistaken group/tract ids.  It clearly tried to connect all 
>>>> segments, but with no knowledge of where bifurcations were, simply tacked 
>>>> them all end-to-end to form 1 centerline.
>>>>
>>>> So really...I'm trying to figure out, if I must synthesize group and tract 
>>>> ids, how do I do so in a way that will correctly inform the merging of my 
>>>> branch centerline segments?
>>> Try to see if vmtkbranchextractor (since it only relies on centerlines). 
>>> Just a suggestion, I don't want to complicate things but you might have not 
>>> been aware that vmtkbranchextractor is purely centerline-based.
>>>
>>>
>>> Luca
>>>
>>>
>>>> -rd
>>>>>> I just tried running it with groupID==centerlineID for all centerlines,
>>>>>> and tractID = uniformly 1, and blanking = uniformly 0.
>>>>>>
>>>>>> The result was an unruly knot that suggested that it didn't know what to
>>>>>> connect to what.
>>>>> Yes, the centerline has to be first split into branches using 
>>>>> vmtkbranchextractor
>>>>> (which will identify bifurcations, split and group) and then 
>>>>> vmtkcenterlinemerge
>>>>> will generate one centerline per group and create a proper network.
>>>>>
>>>>>> I suspect, after digging through the vtkVmtk source code and looking at
>>>>>> this http://www.vmtk.org/Tutorials/BranchSplitting/ example, I need to
>>>>>> actually annotate the bifurcation regions by setting group and tract id,
>>>>>> and blanking, correctly.
>>>>> Yes, but you also need to split centerline cells in chunks, as depicted in
>>>>> the branch splitting tutorial.
>>>>>
>>>>>> If I understand this correctly, I can create a bifurcation region by
>>>>>> identifying where the branch departs the vessel, and appending 1
>>>>>> location on the vessel centerline to the branch centerline at the
>>>>>> proximal-most location.  And then, groupID increments at and after each
>>>>>> bifurcation region, and blanking is set to 1 in each bifurcation region.
>>>>>>
>>>>>> I'm less clear on tract ID.  Is it always either 1 or 2, depending
>>>>>> whether before or after the bifurcation point?  Or does it get set to a
>>>>>> unique value for each chunk vis a vis group id?
>>>>> Consider the individual centerline cell originally running between
>>>>> inlet and outlet. Now that you have split it in chunks, number each
>>>>> chunk from 0 to n. That's the tract id.
>>>>>
>>>>>> I won't be able to get to it until this evening, but I believe that's
>>>>>> the next logical step.
>>>>> Keep us posted. However, I'd also like to understand more of your 
>>>>> approach,
>>>>> so if you could clarify your first paragraph that would be great.
>>>>>
>>>>> Thanks
>>>>>
>>>>> Luca
>>>>>
>>>>>> -rd
>>>>>>
>>>>>> On 03/07/2013 10:35 AM, Luca Antiga wrote:
>>>>>>> Hi Richard,
>>>>>>>   just pipe vmtkcenterlinemerge after vmtkbranchextractor and use 
>>>>>>> -ofile to write the file out, that's the quickest.
>>>>>>> What is your exact issue?
>>>>>>>
>>>>>>> Roman: I haven't got an answer for you yet - I've been taking care of 
>>>>>>> the quick messages but yours requires a free slot of time. Thanks for 
>>>>>>> your patience.
>>>>>>>
>>>>>>> Luca
>>>>>>>
>>>>>>> On 06/mar/2013, at 18:31, Richard Downe <richard-do...@uiowa.edu> wrote:
>>>>>>>
>>>>>>>> Luca--
>>>>>>>> I've been vexed by a similar situation for awhile that I'm just now 
>>>>>>>> getting around to tackling.
>>>>>>>> One thing I *do* have, however, is centerlines for my main vessel an 
>>>>>>>> all branches.
>>>>>>>> I've noticed a vmtkcenterlinemerge.py/vtkvmtkMergeCenterlines.h/cxx 
>>>>>>>> that don't appear to be used anywhere, so I can't find a usage example.
>>>>>>>>
>>>>>>>> What do I need to pass in for the tract ids and blanking ids to make 
>>>>>>>> this work, or do you have a usage example somewhere?
>>>>>>>> -rd
>>>>>>>>
>>>>>>>> On 03/04/2013 07:00 AM, Luca Antiga wrote:
>>>>>>>>> Hi Roman,
>>>>>>>>>   I'll really need to take a closer look to the data you sent, I'm 
>>>>>>>>> planning to do it in the next few days.
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>> Luca
>>>>>>>>>
>>>>>>>>> On Mar 4, 2013, at 1:54 PM, Dr. Roman Grothausmann wrote:
>>>>>>>>>
>>>>>>>>>> On 23/02/13 13:56, Luca Antiga wrote:
>>>>>>>>>>> Possible workarounds:
>>>>>>>>>>>
>>>>>>>>>>> 1. Try to use Tetgen to generate the internal Delaunay 
>>>>>>>>>>> tessellation, instead of the default algorithm. This can be easily
>>>>>>>>>>> done by specifying -usetetgen 1 in the vmtkcenterlines command line
>>>>>>>>>> Using tetgen I get an error and the resulting VTP-file is empty 
>>>>>>>>>> (second workaround is still running):
>>>>>>>>>>
>>>>>>>>>> Reading VTK XML surface file.
>>>>>>>>>> Executing vmtkcenterlines ...
>>>>>>>>>> Cleaning surface.
>>>>>>>>>> Triangulating surface.
>>>>>>>>>> Computing centerlines.
>>>>>>>>>> Computing centerlines...Running TetGen.
>>>>>>>>>> TetGen command line options: pT1.000000e-08dzQ
>>>>>>>>>> ERROR: In 
>>>>>>>>>> /home/grr/programme/vmtk-1.0.1/vtkVmtk/ComputationalGeometry/vtkvmtkNonManifoldFastMarching.cxx,
>>>>>>>>>>  line 667
>>>>>>>>>> vtkvmtkNonManifoldFastMarching (0xe6fdac0): Cost function array with 
>>>>>>>>>> name specified does not exist!
>>>>>>>>>>
>>>>>>>>>> ERROR: In 
>>>>>>>>>> /home/grr/programme/vmtk-1.0.1/vtkVmtk/ComputationalGeometry/vtkvmtkSteepestDescentLineTracer.cxx,
>>>>>>>>>>  line 318
>>>>>>>>>> vtkvmtkSteepestDescentLineTracer (0xe6f9210): Descent array with 
>>>>>>>>>> name specified does not exist!
>>>>>>>>>>
>>>>>>>>>> Done executing vmtkcenterlines.
>>>>>>>>>> Writing VTK XML surface file.
>>>>>>>>>> Output vmtkcenterlines members:
>>>>>>>>>>
>>>>>>>>>>> 2. Compute the Delaunay tessellation on the closed surface (prior 
>>>>>>>>>>> to cutting the endcaps open) using vmtkdelaunayvoronoi
>>>>>>>>>>> and feed it to vmtkcenterlines, this way:
>>>>>>>>>>>
>>>>>>>>>>> vmtkdelaunayvoronoi -ifile unclipped.vtp --pipe vmtkcenterlines 
>>>>>>>>>>> -ifile clipped.vtp ...
>>>>>>>>>> Using this command causes no errors but the resulting file is also 
>>>>>>>>>> empty.
>>>>>>>>>>
>>>>>>>>>> Any ideas what else I could try?
>>>>>>>>>>
>>>>>>>>>> Many thanks for any help or hints.
>>>>>>>>>> Roman
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> This will allow you to take advantage of the clipped endcaps for 
>>>>>>>>>>> the seedselector (since you feed clipped.vtp as input to 
>>>>>>>>>>> vmtkcenterlines)
>>>>>>>>>>> but use the Delaunay tessellation computed from the unclipped one, 
>>>>>>>>>>> which shouldn't have the issue with the artifactual inner tets.
>>>>>>>>>>>
>>>>>>>>>>> In any case, it would be good for me to have the surface so I can 
>>>>>>>>>>> use it to fix the internal delaunay tet selection issue.
>>>>>>>>>>>
>>>>>>>>>>> Best,
>>>>>>>>>>>
>>>>>>>>>>> Luca
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Feb 22, 2013, at 9:32 AM, Dr. Roman Grothausmann wrote:
>>>>>>>>>>>
>>>>>>>>>>>> (now with images)
>>>>>>>>>>>>
>>>>>>>>>>>> Dear mailing list members,
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Another problem I have is that not all end-points that I extract 
>>>>>>>>>>>> from the output of vmtknetwork (magenta lines in attached image) 
>>>>>>>>>>>> are tracked by vmtkcenterlines (grey/blue lines), most are but 
>>>>>>>>>>>> some are not. See the end points of the magenta lines of which a 
>>>>>>>>>>>> grey line stretches like a cobweb string. After removing these 
>>>>>>>>>>>> cobweb lines I end up with the blue lines which are OK except for 
>>>>>>>>>>>> the lacking branches.
>>>>>>>>>>>> What could be the reason for that and how could I avoid it?
>>>>>>>>>>>>
>>>>>>>>>>>> Any help or hints are very much appreciated
>>>>>>>>>>>> Roman
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Dr. Roman Grothausmann
>>>>>>>>>>>>
>>>>>>>>>>>> Tomographie und Digitale Bildverarbeitung
>>>>>>>>>>>> Tomography and Digital Image Analysis
>>>>>>>>>>>>
>>>>>>>>>>>> Institut für Funktionelle und Angewandte Anatomie, OE 4120
>>>>>>>>>>>> Medizinische Hochschule Hannover
>>>>>>>>>>>> Carl-Neuberg-Str. 1
>>>>>>>>>>>> D-30625 Hannover
>>>>>>>>>>>>
>>>>>>>>>>>> Tel. +49 511 532-9574
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <KO4_01_08_12_002_PD PMT_seg-8bit_fh0_obs_d1 
>>>>>>>>>>>> orig_fh0_obs_mc50_lmp_nw-skel1.05_ep_s2t0_mo004_ep_cl_01_03.gif><KO4_01_08_12_002_PD
>>>>>>>>>>>>  PMT_seg-8bit_fh0_obs_d1 
>>>>>>>>>>>> orig_fh0_obs_mc50_lmp_nw-skel1.05_ep_s2t0_mo004_ep_cl_01_05.gif>------------------------------------------------------------------------------
>>>>>>>>>>>> Everyone hates slow websites. So do we.
>>>>>>>>>>>> Make your web apps faster with AppDynamics
>>>>>>>>>>>> Download AppDynamics Lite for free today:
>>>>>>>>>>>> http://p.sf.net/sfu/appdyn_d2d_feb_______________________________________________
>>>>>>>>>>>> vmtk-users mailing list
>>>>>>>>>>>> vmtk-users@lists.sourceforge.net
>>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/vmtk-users
>>>>>>>>>> -- 
>>>>>>>>>> Dr. Roman Grothausmann
>>>>>>>>>>
>>>>>>>>>> Tomographie und Digitale Bildverarbeitung
>>>>>>>>>> Tomography and Digital Image Analysis
>>>>>>>>>>
>>>>>>>>>> Institut für Funktionelle und Angewandte Anatomie, OE 4120
>>>>>>>>>> Medizinische Hochschule Hannover
>>>>>>>>>> Carl-Neuberg-Str. 1
>>>>>>>>>> D-30625 Hannover
>>>>>>>>>>
>>>>>>>>>> Tel. +49 511 532-9574
>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>> Everyone hates slow websites. So do we.
>>>>>>>>> Make your web apps faster with AppDynamics
>>>>>>>>> Download AppDynamics Lite for free today:
>>>>>>>>> http://p.sf.net/sfu/appdyn_d2d_feb
>>>>>>>>> _______________________________________________
>>>>>>>>> vmtk-users mailing list
>>>>>>>>> vmtk-users@lists.sourceforge.net
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/vmtk-users
>>>>>> ------------------------------------------------------------------------------
>>>>>> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
>>>>>> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
>>>>>> endpoint security space. For insight on selecting the right partner to
>>>>>> tackle endpoint security challenges, access the full report.
>>>>>> http://p.sf.net/sfu/symantec-dev2dev
>>>>>> _______________________________________________
>>>>>> vmtk-users mailing list
>>>>>> vmtk-users@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/vmtk-users
>>>> <centerlines.png>
>>
>> ------------------------------------------------------------------------------
>> Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
>> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
>> endpoint security space. For insight on selecting the right partner to
>> tackle endpoint security challenges, access the full report.
>> http://p.sf.net/sfu/symantec-dev2dev
>> _______________________________________________
>> vmtk-users mailing list
>> vmtk-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/vmtk-users


------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
vmtk-users mailing list
vmtk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Reply via email to