[Insight-users] Exactness of Maurer distance transform

Torsten Rohlfing torsten at synapse.sri.com
Wed Apr 29 17:58:07 EDT 2009


Hi --

I think you are making some assumptions here that may not be justified. 
You are assuming that the surface is exactly between the first voxel 
inside and the first voxel outside, but this is in mo way represented in 
the data. Indeed, the data does not even necessarily represent a smooth 
circle, but rather a structure composed of little cubes, with lots of 
little corners and edges. (Actually, even that assumption isn't really 
represented in the data, but it's at least as reasonable as your 
suggestion).

Even if you think of an actual, parametric circle superimposed on your 
image, the exact location of the circle boundary is almost never exactly 
between two pixels, because the exact surface is curved.

As for your expectation to get -0.5 and +0.5 just inside and outside the 
boundary: that is certainly desirable in certain cases, and I had a 
discussion with Calvin Maurer about this a few years ago, but at least 
back then he didn't think there was an easy way to get this sort of 
behaviour out of his algorithm. Unless someone else has a clever idea, 
I'd say that's what it is for now.

Best,
  Torsten

> Dear ITK Users,
>
> I have a question concerning the exactness that can be achieved with the
> ITK Maurer distance transform. I have run the distance transform on
> the attached synthetic image of a circle (signed distance transform with
> the real distances, NOT with the squared ones).
> Now, I look at the borders of the circle (from the origin of the circle
> in any direction - north, south, east, west or foreground, background).
> I find that at the last voxel of the circle, the distance is 0. The
> first voxel on the outside has distance 1. This suggests that the
> boundary of the circle is exactly at the voxel centre of the voxel with
> 0 distance. However, it is in between the two aforementioned voxels. So,
> actually, I would expect them to have the distances -0.5 for the one on
> the inside and 0.5 for the one on the outside.
> I am a little confused and I would appreciate any help on this matter.
> Is there a bug or do I misunderstand something? Or is this just the
> behaviour/result that can be achieved?
>
> Thank you very much!
>
> Best regards
> Amar
>   



More information about the Insight-users mailing list