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