Re: [vmtk-users] centerlines question
Brought to you by:
davidsteinman,
lucantiga
From: Luca A. <an...@ma...> - 2007-01-13 19:15:51
|
Hi Joong-Ho, I see that your surface is quite noisy, and it certainly depends on the initial image quality. You may want to use the -featurederivativesigma option on the vmtklevelsetsegmentation command line and set a nonzero curvature weight during levelset evolution. This may help you getting a smoother surface. Now, I tried the branch clipping with the following pipe: vmtksurfacereader -ifile p001_part1_model.vtp --pipe vmtkcenterlines --pipe vmtkbranchextractor --pipe vmtkbranchclipper --pipe vmtksurfaceviewer -array GroupIds (you can add as many ofile as you want, I didn't do it since I was interested in viewing the result) and it worked per se, although the splitting has a defect due to surface irregularities (two small regions on one branch are assigned to the other). I'll have to take care of this sooner than later, it's a known issue and I think I know how to fix it to make it more bulletproof even with noisy or weird shaped datasets. Probably the bug won't show up if you regularize the image during segmentation the way I suggested at the beginning of this mail. As to the reason why your script failed, is that if you don't use it in a pipe it has no way of knowing what's the array name that vmtkbranchextractor generated for storing the GroupIds and other splitting related arrays (to ease the user's life I may decide in the future to give this kind of information a meaningful default that would work in most of the cases). If you really want to avoid using it in a pipe, you have to specify vmtkbranchclipper -ifile p001_part1_model.vtp -centerlinesfile p001_part1_tracts.vtp -radiusarray MaximumInscribedSphereRadius - groupidsarray GroupIds -blankingarray Blanking --pipe vmtksurfaceviewer -array GroupIds but I suggest that you simply use it piped after vmtkbranchsplitting, as all this information passing will be taken care of for you. Cheers Luca -- Luca Antiga, PhD Biomedical Technologies Laboratory, Bioengineering Department, Mario Negri Institute email: an...@ma... web: http://villacamozzi.marionegri.it/~luca mail: Villa Camozzi, 24020, Ranica (BG), Italy phone: +39 035 4535-381 On Jan 10, 2007, at 2:18 PM, Joong-Ho Won wrote: > Hello Luca, > > I attach them again in tgz (Windows extension for tar.gz) format. > > For the vmtkbranchclipper, I meant first run > > vmtkbranchextractor.py -ifile p001_part1_centerlines.vtp -ofile > p001_part1_tracts.vtp \ > -radiusarray MaximumInscribedSphereRadius > > and > > vmtkbranchclipper.py -ifile p001_part1_model.vtp \ > -centerlinesfile p001_part1_tracts.vtp \ > -radiusarray MaximumInscribedSphereRadius \ > --pipe vmtksurfaceviewer -array GroupIds > > The second one failed with "CenterlineGroupdIdsArray with name > specified does not exist." > > Regards, > > Joong-Ho. > > > Luca Antiga wrote: >> Hi Joong-Ho, >> for some reason the vtp file you attached was embedded in the >> message. I tried to delete the rest and keep the attached data, >> but it's invalid because there are spurious carriage returns around. >> You could try to tar.gz the file and then attach it. >> As to the pipe, just a quick suggestion (a feature of pypes you >> might have missed): >> when you specify a variable that has to be repeated downstream the >> pipe, you can "push" it the first time you specify it, this way >>> vmtkbranchextractor.py -ifile p001_part1_centerlines.vtp \ >>> -radiusarray@ MaximumInscribedSphereRadius \ >>> --pipe vmtkbranchclipper.py -ifile p001_part1_model.vtp \ >>> --pipe vmtksurfaceviewer -array GroupIds >> In this pipe, -radiusarray@ will be pushed along the pipe and >> recognized by vmtkbranchclipper. >>> But I failed to do this without vmtkbranchextractor in front of >>> vmtkbranchclipper, i.e. using the output file of >>> vmtkbranchextractor. >> Sorry, I don't understand what you mean :-) Could you be more >> specific? >> I have to run now, I'll come back later to reply to your last >> question >> Luca >> <vmtkdata.tgz> |