Hi Carlos,
 you're right, I scrambled the expression for G, things are indeed the way you 
describe them. The bounded reciprocal would work with any > 0 epsilon added
to the | grad I |, so 1 is as good as others.

For citing the pipeline you can use

Antiga L, Piccinelli M, Botti L, Ene-Iordache B, Remuzzi A and Steinman DA. An 
image-based modeling framework for patient-specific computational hemodynamics. 
Medical and Biological Engineering and Computing, 46: 1097-1112, Nov 2008.

Thanks

Luca


On Dec 16, 2012, at 12:36 PM, Carlos Alberto Bulant wrote:

> Hi Luca,
> Thanks for your replay, it has been very helpful.
> Never the less it is note clear to me, yet, the current implementations of G 
> and P functions, you explained:
> 
> "In the current implementation, G is the bounded inverse of the intensity 
> gradient magnitude (1 / (epsilon + del G)).
> P is the vector gradient of the bounded inverse of the intensity gradient 
> magnitued, where the gradient is computed with finite differences... "
> 
> so, you said
>  G = 1 / (epsilon + del G)
> I don't understand it, did you mean?
> 
>    G = 1 / (1 + | grad I |)       // here "grad ." is the gradient operator, 
> and "|.|" the absolute value
> and
>    P = -G
> // This two forms will be the definitions on 
> http://www.itk.org/Doxygen/html/classitk_1_1GeodesicActiveContourLevelSetFunction.html
> 
> remembering that the PDE is
> 
> (2.22)     -w1 G(x) | grad F | + 2 w2 G(x) H(x) | grad F | + w3 <[grad P(x)] 
> , grad F >
> 
> 
> finally, i would like to ask you how i should cite the use of the level set 
> segmentation pipeline, is there any paper or just the vmtk website?
> 
> Thank you in advance!
> 
> 
> 
> 
> 2012/12/12 Luca Antiga <luca.ant...@gmail.com>
> Hi Carlos,
> 
> On Dec 3, 2012, at 3:12 PM, Carlos Alberto Bulant wrote:
> 
>> Hello Luca,
>> thanks for the answers, i would like to do more questions related to the 
>> subject.
>> 
>> i would like to summarize (in the form of pseudo-code) how i understand the 
>> level set segmentation works, and then ask you some questions
>> 
>> // pseudo-code 
>> begin-------------------------------------------------------------------------------------------------------------
>> image iI(x) // the -ifile 
>> 
>> image lvlSet_t0(x) <--- initialization procedure over the iI(x) image (no 
>> pre-processing is used on iI(x))
> 
> correct
> 
>> image I(x)  // the featured image
>> if -featureimagefile fI(x) NOT NULL {
>>   I = fI
>> }else {  
>>   I = smooth(iI, -smoothingiterations, -smoothingtimestep, 
>> -smoothingconductance)  
>> }
> 
> Not really. The feature image can be provided (-featureimagefile) or it can 
> be computed by the
> script. In which case it will be generated using the method specified by 
> -featureimagetype,
> which can be "vtkgradient","gradient","upwind","fwhm". See the 
> vmtkimagefeatures script
> for details on the feature images.
> 
> Smoothing only comes into play for a particular level set type. There are 
> currently three
> level set types available, which differ by the terms in the evolution 
> equation:
> 
> "geodesic": the equation we mentioned in the last email
> "curves": same as above but the curvature term does not contain mean 
> curvature, but minimum curvature (see 
> L. Lorigo, O. Faugeras, W.E.L. Grimson, R. Keriven, R. Kikinis, A. Nabavi, 
> and C.-F. Westin, Curves: Curve evolution for vessel segmentation. Medical 
> Image Analysis, 5:195-206, 2001.
> for details)
> "threshold": the level set will evolve towards a particular intensity level 
> (as opposed to gradient magnitude ridges), and in addition you can include a 
> Laplacian term; smoothing works here for building the Laplacian of the 
> feature image
> "laplacian": the level set will evolve towards zeros of the Laplacian image 
> as an advection term
> 
>> // calculates the G and P
>> // Where grad operator is defined by -featureimagetype parameter.
>> image g(x) = G( grad(I) )   // using equation 2.20 from the thesis
>> image p(x) = P( grad(I) )   // using equation 2.21 from the thesis
> 
> Yes (grad here is the intensity gradient magnitude)
> 
>> // Where -levelsetstype defines the type levelsetFunction to be used
> 
> See above.
> 
>> image levelset = levelsetFunction (lvlSet_t0, g, p, -iterations, 
>> -propagation, -curvature, -advection)
> 
> Yes
> 
>> // pseudo-code 
>> end--------------------------------------------------------------------------------------------------------------
>> 
>> Questions:
>> * Which smoothing function is used? (i.e. gradient anisotropic diffusion, 
>> curvature anisotropic diffusion, etc)
> 
> It's a gradient anisotropic diffusion filter 
> (itkGradientAnisotropicDiffusionImageFilter), used internally by 
> itkThresholdSegmentationLevelSetFunction, as mentioned above.
> Take a look here: 
> ITK/Code/Algorithms/itkThresholdSegmentationLevelSetFunction.h and 
> ITK/Code/Algorithms/itkThresholdSegmentationLevelSetFunction.txx for details.
> 
>> * Are G and P functions the ones defined on the thesis? (on 
>> http://www.itk.org/Doxygen/html/classitk_1_1GeodesicActiveContourLevelSetFunction.html
>>  P is P(G), and in the thesis there is another definition P(I), besides on 
>> the link there are suggestions on the most commonly definition of G, but i'm 
>> not sure on which is really used)
> 
> In the current implementation, G is the bounded inverse of the intensity 
> gradient magnitude (1 / (epsilon + del G)).
> P is the vector gradient of the bounded inverse of the intensity gradient 
> magnitued, where the gradient is computed with finite differences if
> featurederivativesigma is 0, and using Gaussian derivative convolution with 
> sigma = featurederivativesigma if the latter is greater than zero.
> 
> Cheers
> 
> Luca
> 
>> Thanks in advance!
>> Best of regards
>> Carlos
>> 
>> 
>> 2012/12/3 Luca Antiga <luca.ant...@gmail.com>
>> Hello Carlos,
>>  welcome to vmtk and sorry for the wait. I hope the timing won't stop you 
>> from sending more questions in the future.
>> 
>> The level set code I used during my PhD was written by me, then ITK came 
>> along and I was very happy to fully embrace it :-)
>> So right now level set implementation in vmtk is the one provided by ITK:
>> http://www.itk.org/Doxygen/html/classitk_1_1GeodesicActiveContourLevelSetFunction.html
>> which is a specialization of this general formulation
>> http://www.itk.org/Doxygen/html/classitk_1_1LevelSetFunction.html
>> 
>> As you see, the latter link includes a spatial modifier for the mean 
>> curvature term (Z), which in the actually code is 
>> returned by the CurvatureSpeed method. In the 
>> GeodesicActiveContourLevelSetFunction such term is set equal to 
>> G (the edge potential image).
>> 
>> So, long story short, yes, the current implementation follows equation 2.22.
>> 
>>> Correct me if i'm wrong:  G and P depend on the so called featured Image ( 
>>> | grad I(x) | on Luca's thesis), if executing the vmtklevelsetsegmentation 
>>> filter as before (without specifying a -featureimagefile image)  Is the 
>>> featured image used by G and P calculated automatically (depending on the 
>>> -featureimagetype parameter with gradient as default)?
>> 
>> 
>> Exactly. Good job!
>> 
>> 
>> Luca
>> 
>> 
>> On Nov 27, 2012, at 10:19 PM, Carlos Alberto Bulant wrote:
>> 
>>> Hi VMTK users,
>>> this is my first post in this mailing list (probably there will be more), 
>>> i'm a new user just starting to use the toolkit.
>>> Now to my questions:
>>> 
>>> When using the level set segmentation filter in the form of :
>>> vmtklevelsetsegmentation -ifile image_volume_voi.vti -ofile level_sets.vti
>>> assuming none-zero PropagationScaling (w1), CurvatureScaling (w2) and 
>>> AdvectionScaling (w3)  parameters, which of the Level Set formulation 
>>> (proposed on Luca Antiga's PhD thesis) does the implementation use?
>>> 
>>> (2.19)     -w1 G(x) | grad F | + 2 w2 H(x) | grad F | + w3 <[grad P(x)] , 
>>> grad F >
>>> (2.22)     -w1 G(x) | grad F | + 2 w2 G(x) H(x) | grad F | + w3 <[grad 
>>> P(x)] , grad F >
>>> 
>>> 
>>> In the current implementation, are G(x) and P(x) the one proposed on Luca's 
>>> thesis?
>>> 
>>> 
>>> Correct me if i'm wrong:  G and P depend on the so called featured Image ( 
>>> | grad I(x) | on Luca's thesis), if executing the vmtklevelsetsegmentation 
>>> filter as before (without specifying a -featureimagefile image)  Is the 
>>> featured image used by G and P calculated automatically (depending on the 
>>> -featureimagetype parameter with gradient as default)?
>>> 
>>> Sorry for  my English,
>>> Best of regards
>>> Carlos
>>> ------------------------------------------------------------------------------
>>> Keep yourself connected to Go Parallel: 
>>> DESIGN Expert tips on starting your parallel project right.
>>> http://goparallel.sourceforge.net_______________________________________________
>>> vmtk-users mailing list
>>> vmtk-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/vmtk-users
>> 
>> 
> 
> 

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
vmtk-users mailing list
vmtk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Reply via email to