<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>RE: Sparse vs Dense ChanAndVeseLevelSetImageFilter</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hello Kishore,<BR>
thank you very much for your help.<BR>
<BR>
1. So, in the case of my example how can I explain why the sparse result is even bigger than the dense?<BR>
Concerning the smoothness, I do not use any curvature smoothing in either of the cases (levelSetFilter-&gt;GetDifferenceFunction(0)-&gt;SetCurvatureWeight( 0 );)<BR>
So, why the dense result is smoother than the sparse?<BR>
<BR>
2. For the sparse case, is it correct that in all iterations (apart from the first) the old value is always 1e-06?<BR>
<BR>
3. For the moment I wrote the method in my code. Just if you would like to add it in the next itk release.<BR>
<BR>
Best regards,<BR>
Eleni<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: Kishore Mosaliganti [<A HREF="mailto:kishoreraom@gmail.com">mailto:kishoreraom@gmail.com</A>]<BR>
Sent: Thu 9/17/2009 10:08 AM<BR>
To: Sgouritsa, Eleni ; insight-users@itk.org<BR>
Subject: Re: Sparse vs Dense ChanAndVeseLevelSetImageFilter<BR>
<BR>
Hi Eleni,<BR>
<BR>
1. You will *NOT* get the&nbsp; same segmentation result from the Sparse and<BR>
Dense filter case. For example, in the dense case, we can segment any<BR>
structure throughout the image irrespective of the 0 levelset location. In<BR>
the sparse case, we only look at a band of values around the 0 levelset. If<BR>
the levelset converges, then it does not segment far-off objects. Did you<BR>
use any curvature based smoothing in the dense filter in your example?<BR>
<BR>
2.&nbsp; In the first and any iteration, the old value is always the distance of<BR>
the active layer voxel from the 0 levelset. The &quot;change&quot; is computed and<BR>
scaled by the time-step &quot;dt&quot; to compute the new value.<BR>
<BR>
When a 0 levelset cuts through a voxel, we compute its normal and based on<BR>
that, we estimate a voxel's distance from the surface. This is in the method<BR>
InitializeActiveLayerValues().<BR>
<BR>
3. I will make the method in the dense case as well, for your convenience<BR>
and check it into ITK later today after making suitable tests.<BR>
<BR>
Kishore<BR>
<BR>
On Wed, Sep 16, 2009 at 7:19 PM, Sgouritsa, Eleni<BR>
&lt;esgourit@central.uh.edu&gt;wrote:<BR>
<BR>
&gt;&nbsp; Hello Kishore,<BR>
&gt; this is an example of what I mean. (The ground truth for this dataset is<BR>
&gt; closer to a smoothed version of the sparse result)<BR>
&gt;<BR>
&gt; Best regards,<BR>
&gt; Eleni<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: Sgouritsa, Eleni<BR>
&gt; Sent: Wed 9/16/2009 6:14 PM<BR>
&gt; To: kishoreraom@gmail.com<BR>
&gt; Cc: insight-users@itk.org<BR>
&gt; Subject: Sparse vs Dense ChanAndVeseLevelSetImageFilter<BR>
&gt;<BR>
&gt; Hello Kishore,<BR>
&gt;<BR>
&gt; I have some questions on the sparse and dense chan&amp;vese level set filters.<BR>
&gt;<BR>
&gt; 1. I would expect getting the same segmentation result for a given volume<BR>
&gt; using sparse and dense filters with the same parameters. However the result<BR>
&gt; using the sparse filter is &quot;bigger&quot; (the level set evolved more) and<BR>
&gt; non-smooth compared with the one using the dense. Is this acceptable?<BR>
&gt;<BR>
&gt; 2. Debugging the sparse filter code in the place where is the<BR>
&gt; CalculateUpdateValue function, we compute for the level set update:<BR>
&gt; ValueType new_value = old_value + dt * change;<BR>
&gt; In this place the old value is always 0 in the first iteration and 1e-06 in<BR>
&gt; the next iterations. Is this correct? I would expect as old_values positive<BR>
&gt; and negative values near zero depending on the distance from the zero level<BR>
&gt; set.<BR>
&gt; I tried increasing the number of layers used in the narrow band, but it is<BR>
&gt; still the same.<BR>
&gt;<BR>
&gt; 3. Could it be possible in the future to have this function<BR>
&gt; virtual ValueType CalculateUpdateValue (const IndexType &amp;, const<BR>
&gt; TimeStepType &amp;dt, const ValueType &amp;value, const ValueType &amp;change)<BR>
&gt; in the protected members of the dense filter as it is in the sparse right<BR>
&gt; now?<BR>
&gt; ( Currently, for the dense filter this calculation is embedded in the<BR>
&gt; ApplyUpdate function )<BR>
&gt;<BR>
&gt; Thank you very much,<BR>
&gt; Eleni<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>