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