[Insight-users] Distance between surfaces
Karthik Krishnan
karthik.krishnan at kitware.com
Tue Jun 9 16:57:22 EDT 2009
You are talking about probing a surface with scalar values.. Do the
following
1. Compute the distance map to the first surface to produce an image data.
2. Probe the second surface (polydata) with the image data. This is
conveniently done in VTK by the filter vtkProbeFilter will do that for you
creating point/cell data for you.
You can do 2 in Paraview as well, by loading a surface and an image data,
probing the surface with the image and coloring by cell/point scalars to
visualize the result
Hope this helps
--
karthik
On Tue, Jun 9, 2009 at 4:49 PM, Koen Vermeer <koen at vermeer.tv> wrote:
> Thanks for the comments, but it seems that I haven't made myself clear
> enough... I was looking for a way to find the distance for all points of
> the surface; I'm not looking for the minimum distance between the two
> surfaces. So, at the end, for surface A, I need the distance to surface
> B, for each point on surface A. Hence my idea to do a distance mapping
> based on surface B, and then extract the values for surface A.
>
> I can still use your kd-tree idea to efficiently get the distances; I
> just shouldn't limit myself to the minimum distance of all the points on
> the surface. I'm just wondering is that approach is more efficient than
> a distance map.
>
>
> My goal is this: Assume that surface B is like a flat horizontal surface
> (with a certain thickness), with a hole in the center. Now, a fluid is
> flowing on the surface, and through the hole. I'm interested in the area
> around the hole, and more specifically in the minimum thickness of the
> fluid layer in this area. My final goal is then to find a surface (like
> a band) around the hole with a minimum area, basically defining the
> minimum area that the fluid flows through. In my case, the horizontal
> surface is curved and bumpy, and the fluid isn't a fluid, but I guess
> this is the easiest way to visualize it.
>
>
> Best,
> Koen
>
> On Tue, 2009-06-09 at 13:24 -0400, Arnaud Gelas wrote:
> > Hi Koen,
> >
> > if you want an approximation of the minimal distance between the two
> > surfaces one cheap and "fast" solution would be to consider point sets
> > and found the shortest distance between these two sets. Note this is
> > only an approximation and it won't help you if you need to check if the
> > two surface intersects...
> >
> > If an approximation is ok for you, you could do the following:
> > use a kd-tree where you store one of the two surface (let's say A).
> > Then for the first point of the other surface (B) you search for the
> > closest point on the (A) and you get the distance dist.
> > Then for the next point you search all closest neighbor given the
> > distance dist. If there are any you update dist as the minimum of these
> > neighbors, else you don't change dist. You iterate.
> >
> > HTH
> > Arnaud
> >
> > Leila Baghdadi wrote:
> > > Koen,
> > >
> > > one idea would be to convert your surfaces to binary mask images
> > > ( itkTriangleMeshToBinaryImageFilter) and then compare images voxel by
> > > voxel,
> > >
> > > HTH
> > >
> > > Leila
> > >
> > > On Tue, 2009-06-09 at 18:08 +0200, Koen Vermeer wrote:
> > >
> > >> Hi,
> > >>
> > >> My experience with ITK is still rather limited, so I'm looking for
> help
> > >> on which approach would be the best for my problem.
> > >>
> > >> In a 3D volume (note that my pixels are not isotropic), I have two 2D
> > >> surfaces (represented by a set of points, or a level set, or whatever
> > >> the solution requires). I am looking for a way to determine the
> minimum
> > >> distance between these two surfaces, for each point on these surfaces.
> > >>
> > >> I was thinking about propagating one surface and recording some kind
> of
> > >> distance map on the location of the second surface. Would something
> like
> > >> a distance map be the most appropriate operator, a fast marching
> filter,
> > >> or something else?
> > >>
> > >> Any comments are appreciated; if more information is required, I'd be
> > >> more than happy to elaborate on the problem!
> > >>
> > >> Best,
> > >> Koen
> > >>
> > >> _____________________________________
> > >> Powered by www.kitware.com
> > >>
> > >> Visit other Kitware open-source projects at
> > >> http://www.kitware.com/opensource/opensource.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
> > >>
> > >
> > > _____________________________________
> > > Powered by www.kitware.com
> > >
> > > Visit other Kitware open-source projects at
> > > http://www.kitware.com/opensource/opensource.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
> > >
> >
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090609/877cb8b8/attachment.htm>
More information about the Insight-users
mailing list