[Insight-users] About the distance function obtained from ThresholdSegmentationLevelSetImageFilter

Luis Ibanez luis.ibanez at kitware.com
Sat Apr 3 18:10:40 EDT 2010


Hi Weidong,

You are correct, the LevelSet filters only compute an approximation to the
distance function. As you already pointed out this is done for efficiency
reasons.

You may want to explore the following options:

1)  DanielssonDistanceMap
      http://www.itk.org/Doxygen/html/classitk_1_1DanielssonDistanceMapImageFilter.html
     Although this is also somehow an approximation
     of the distance, and it is more computationally
     intensive than the Maurer filter.

or


2)  ReinitializeLevelSetImageFilter
http://www.itk.org/Doxygen/html/classitk_1_1ReinitializeLevelSetImageFilter.html
"ReinitializeLevelSetImageFilter reinitializes the input level set to the
  approximated signed distance function from a particular level set.
  The output is a level set of the same type as the input."
  "Implementation of this class is based on Chapter 11 of
   "Level Set Methods and Fast Marching Methods",
  J.A. Sethian, Cambridge Press, Second edition, 1999."

or


3) Extract an Iso-contour (iso-surface) from the level set of your
    segmentation and use point to surface computations in order
    to evaluate distances.

    This may or may not be an efficient way to go, depending on who
    many times (and from how many different points) you need to
    compute this distance.


   Regards,


          Luis


-----------------------------------------------------
On Fri, Apr 2, 2010 at 5:42 PM, Wei-Dong Lian <weidong.lian at gmail.com> wrote:
> Hello everyone,
> The levelset values obtained after ThresholdSegmentationLevelSetImageFilter
> are not the real euclidean distance values. the values are cut by two bound
> values. Why? Considering the efficiency of this algorithm, only for these
> pixels whose positions are around the iso coutour, their levelset values are
> updated, and these values are not the real euclidean distance values.  I
> have documented the website and itk online help documents, I have found a
> filter, called SignedMaurerDistanceMapImageFilter, this guy can really
> compute the really euclidean distance values, but it can only compute the
> euclidean distance values from a binary image. so I binary my segmented
> image and with SignedMaurerDistanceMapImageFilter, I really got
> the euclidean distance values that I want. The problem is that it
> lost accuracy. Because this method is computed distance function from the
> binary image which has lost levelset value information.
> In my work, I concerned more about real euclidean distance. So I want to
> know if there exist some filters or methods  that could compute
> the euclidean distance from levelset value, which means that it computes an
> distance from an interpolated isocontour).
> Any suggestion will be appreciated.
> Thanks a lot for your attention,
> Weidong
> ECN
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list