<!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->GetDifferenceFunction(0)->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 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. In the first and any iteration, the old value is always the distance of<BR>
the active layer voxel from the 0 levelset. The "change" is computed and<BR>
scaled by the time-step "dt" 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>
<esgourit@central.uh.edu>wrote:<BR>
<BR>
> Hello Kishore,<BR>
> this is an example of what I mean. (The ground truth for this dataset is<BR>
> closer to a smoothed version of the sparse result)<BR>
><BR>
> Best regards,<BR>
> Eleni<BR>
><BR>
><BR>
><BR>
> -----Original Message-----<BR>
> From: Sgouritsa, Eleni<BR>
> Sent: Wed 9/16/2009 6:14 PM<BR>
> To: kishoreraom@gmail.com<BR>
> Cc: insight-users@itk.org<BR>
> Subject: Sparse vs Dense ChanAndVeseLevelSetImageFilter<BR>
><BR>
> Hello Kishore,<BR>
><BR>
> I have some questions on the sparse and dense chan&vese level set filters.<BR>
><BR>
> 1. I would expect getting the same segmentation result for a given volume<BR>
> using sparse and dense filters with the same parameters. However the result<BR>
> using the sparse filter is "bigger" (the level set evolved more) and<BR>
> non-smooth compared with the one using the dense. Is this acceptable?<BR>
><BR>
> 2. Debugging the sparse filter code in the place where is the<BR>
> CalculateUpdateValue function, we compute for the level set update:<BR>
> ValueType new_value = old_value + dt * change;<BR>
> In this place the old value is always 0 in the first iteration and 1e-06 in<BR>
> the next iterations. Is this correct? I would expect as old_values positive<BR>
> and negative values near zero depending on the distance from the zero level<BR>
> set.<BR>
> I tried increasing the number of layers used in the narrow band, but it is<BR>
> still the same.<BR>
><BR>
> 3. Could it be possible in the future to have this function<BR>
> virtual ValueType CalculateUpdateValue (const IndexType &, const<BR>
> TimeStepType &dt, const ValueType &value, const ValueType &change)<BR>
> in the protected members of the dense filter as it is in the sparse right<BR>
> now?<BR>
> ( Currently, for the dense filter this calculation is embedded in the<BR>
> ApplyUpdate function )<BR>
><BR>
> Thank you very much,<BR>
> Eleni<BR>
><BR>
><BR>
><BR>
><BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>