[Insight-users] Sparse vs Dense ChanAndVeseLevelSetImageFilter
Kishore Mosaliganti
kishoreraom at gmail.com
Thu Sep 17 11:08:19 EDT 2009
Hi Eleni,
1. You will *NOT* get the same segmentation result from the Sparse and
Dense filter case. For example, in the dense case, we can segment any
structure throughout the image irrespective of the 0 levelset location. In
the sparse case, we only look at a band of values around the 0 levelset. If
the levelset converges, then it does not segment far-off objects. Did you
use any curvature based smoothing in the dense filter in your example?
2. In the first and any iteration, the old value is always the distance of
the active layer voxel from the 0 levelset. The "change" is computed and
scaled by the time-step "dt" to compute the new value.
When a 0 levelset cuts through a voxel, we compute its normal and based on
that, we estimate a voxel's distance from the surface. This is in the method
InitializeActiveLayerValues().
3. I will make the method in the dense case as well, for your convenience
and check it into ITK later today after making suitable tests.
Kishore
On Wed, Sep 16, 2009 at 7:19 PM, Sgouritsa, Eleni
<esgourit at central.uh.edu>wrote:
> Hello Kishore,
> this is an example of what I mean. (The ground truth for this dataset is
> closer to a smoothed version of the sparse result)
>
> Best regards,
> Eleni
>
>
>
> -----Original Message-----
> From: Sgouritsa, Eleni
> Sent: Wed 9/16/2009 6:14 PM
> To: kishoreraom at gmail.com
> Cc: insight-users at itk.org
> Subject: Sparse vs Dense ChanAndVeseLevelSetImageFilter
>
> Hello Kishore,
>
> I have some questions on the sparse and dense chan&vese level set filters.
>
> 1. I would expect getting the same segmentation result for a given volume
> using sparse and dense filters with the same parameters. However the result
> using the sparse filter is "bigger" (the level set evolved more) and
> non-smooth compared with the one using the dense. Is this acceptable?
>
> 2. Debugging the sparse filter code in the place where is the
> CalculateUpdateValue function, we compute for the level set update:
> ValueType new_value = old_value + dt * change;
> In this place the old value is always 0 in the first iteration and 1e-06 in
> the next iterations. Is this correct? I would expect as old_values positive
> and negative values near zero depending on the distance from the zero level
> set.
> I tried increasing the number of layers used in the narrow band, but it is
> still the same.
>
> 3. Could it be possible in the future to have this function
> virtual ValueType CalculateUpdateValue (const IndexType &, const
> TimeStepType &dt, const ValueType &value, const ValueType &change)
> in the protected members of the dense filter as it is in the sparse right
> now?
> ( Currently, for the dense filter this calculation is embedded in the
> ApplyUpdate function )
>
> Thank you very much,
> Eleni
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090917/a4b16597/attachment.htm>
More information about the Insight-users
mailing list