[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.