Hey Bruno,
Well this is what i tried to explain (obviously i can't explain :)) ): you need a lot more information to generate a surface from centerlines.
The fact that you have the radius for each segment is ok, but not enough! It is clear that it fails at junctions! Lets take the example of a Y junction: the inlet (artery that transports blood into the junction) has a radius of 1,5 mm, the first outlet 1,8 and the second outlet 1.9mm. They will not fit in a bifurcation! You would need the radius in each point of the centerline and a lot more information.
The following is an example of the attributes of a centerline (generated with vmtkcenterlineattributes):
X Y Z MaximumInscribedSphereRadius EdgeArray0 EdgeArray1 EdgePCoordArray Abscissas ParallelTransportNormals0 ParallelTransportNormals1 ParallelTransportNormals2
148.117202759 307.154174805 -145.761062622 1.04862066806 29126.0 29126.0 0.0 21.3642416396 0.114394561964 0.982487523368 -0.147078722525
148.116928101 307.154174805 -145.761276245 1.04860775651 28111.0 29126.0 0.984 21.3638936857 0.114394561964 0.982487523368 -0.147078722525
148.100509644 307.154541016 -145.774139404 1.04781369632 28111.0 28111.0 0.0 21.3430331798 0.128508712507 0.982330345426 -0.136061027719
147.973602295 307.155212402 -145.893783569 1.04335955889 26353.0 26353.0 0.0 21.168618008 0.131248949264 0.982291621869 -0.133704461123
147.915481567 307.147338867 -145.951980591 1.03680567838 25993.0 25993.0 0.0 21.0859929221 0.0654199420032 0.978085182196 -0.197660333797
147.865707397 307.142883301 -145.997512817 1.03539726003 24986.0 24986.0 0.0 21.0183874214 0.0801857140517 0.97973848181 -0.183528631342
147.815093994 307.144165039 -146.045883179 1.03309666315 29211.0 29209.0 0.004 20.9483656298 0.143595425671 0.98180715593 -0.124237926136
147.796401978 307.144927979 -146.063919067 1.03301420689 22628.0 23800.0 0.004 20.9223797328 0.152078792841 0.981526769145 -0.116091525188
147.737075806 307.15020752 -146.116699219 1.03575914417 23348.0 25576.0 0.856 20.8427982488 0.173142869699 0.980150562682 -0.0965733977172
147.701477051 307.150939941 -146.144317627 1.03605409474 23583.0 23348.0 0.272 20.7977362441 0.12571997975 0.982701499582 -0.135986210373
147.6824646 307.153320312 -146.16293335 1.03450109682 25718.0 23583.0 0.72 20.7710213682 0.195757633978 0.977787707038 -0.074900925933
147.591033936 307.158447266 -146.249771118 1.02916957383 25880.0 25973.0 0.648 20.6448205361 0.159426496797 0.981069481752 -0.109935727103
and the next example is from the sections of a centerline:
X Y Z MaximumInscribedSphereRadius EdgeArray0 EdgeArray1 EdgePCoordArray CenterlineSectionArea CenterlineSectionMinSize CenterlineSectionMaxSize CenterlineSectionShape CenterlineSectionClosed
139.859222412 297.687133789 -142.790161133 0.887666739052 48230.0 48230.0 0.0 2.9076827656 1.80026243512 2.10759427866 0.854178839514 1.0
139.859115601 297.687194824 -142.790176392 0.887679528737 48276.0 48230.0 0.996 2.89695718371 1.79829883702 2.1045820841 0.854468376695 1.0
139.831222534 297.698791504 -142.793212891 0.890864160238 48276.0 48276.0 0.0 2.89238111856 1.80617720777 2.10349870175 0.858653825772 1.0
139.789505005 297.723205566 -142.796508789 0.891709556729 47064.0 47064.0 0.0 2.89534924322 1.80834429287 2.10089293384 0.860750333225 1.0
139.605819702 297.80456543 -142.805297852 0.893452291585 48408.0 48408.0 0.0 2.92503051524 1.8797126984 2.0494071118 0.917198289973 1.0
139.586227417 297.817138672 -142.807189941 0.89353884944 48392.0 48389.0 0.312 2.93398638933 1.88595366689 2.05247617853 0.918867505807 1.0
139.539825439 297.846221924 -142.811065674 0.893626130935 48148.0 48389.0 0.956 2.91171212465 1.8277909596 2.06795911572 0.883862231948 1.0
139.357086182 297.935699463 -142.805908203 0.895218754107 48386.0 48386.0 0.0 2.91698290249 1.81727457809 2.02200074696 0.898750695725 1.0
139.326980591 297.956848145 -142.801559448 0.895011525003 36613.0 36613.0 0.0 2.91766880962 1.82533310074 2.02236059466 0.902575488055 1.0
139.117599487 298.074310303 -142.780960083 0.887988503094 48216.0 48216.0 0.0 2.91645703862 1.8027209863 2.05324308089 0.877987123433 1.0
139.009521484 298.13192749 -142.77204895 0.882916166322 46719.0 46719.0 0.0 2.9249921856 1.78972441906 2.04748906301 0.87410694953 1.0
138.84703064 298.230224609 -142.758499146 0.891313602492 47097.0 44916.0 0.084 2.95309188071 1.83388907954 2.02216416104 0.906894264507 1.0
138.843902588 298.232269287 -142.758529663 0.891671629229 46388.0 47097.0 0.98 2.96710238544 1.84815960953 2.05183024521 0.900737092574 1.0
138.785705566 298.278320312 -142.758209229 0.896978911757 46388.0 46816.0 0.844 2.98874475788 1.80776210541 2.05464036294 0.879843566796 1.0
However the case, i agree that doing it manually is a titanic work, but given the circumstances, if i would have to decide then I would go for the complex mathematical solution with the pseudo code!
Or, i would get a data volume containing the angiography ( it is important that it is a angiography, as this is the most suited way to represent the vascular structures ) of a thorax, segment the structure of interest and add that to the model.
Best regards,
Attila Pataki