[Insight-developers] Level Set Function

Paul Yushkevich pauly at cognitica . com
Thu, 12 Jun 2003 13:54:45 -0400


Hi Josh,

I've just been examining your implementation of the level set function 
and comaring it to the SNAP level set formulation.   I really like your 
implementation because it's generic, and almost all the terms of the 
SnAP function can be folded into the LevelSetFunction using the 
CurvatureSpeed, PropagationSpeed and AdvectionField virtual functions.

There is one term in the SNAP equation that is not in the Level Set 
function.  This is a very simple term used for smoothing the level set 
function over time in order to prevent instabilities. This is just the 
Laplacian of \phi multiplied by a weight and by it's own speed function, 
which is usually identity.

What would you say if I add the Laplacian term to the level set function 
formulation?  That is, I will add Get/SetLaplacianSmoothingWeight() and 
GetLaplacianSmoothingSpeed() methods and add an 
if(LaplacianSmoothingWeight != 0){} clause to the ComputeUpdate() method.  

The reason that I want to add the laplacean computation to the existing 
ComputeUpdate method in LevelSetFunction is because this computation 
requires finite differences that are already being computed in this 
method for calculating curvature and gradient.  It would be beneficial 
to reuse these terms.  The computational cost of this addition will be 
one more 'if' statement for existing level set implementations.

Thanks!

Paul.