<br><br>You are talking about probing a surface with scalar values.. Do the following<br><br>1. Compute the distance map to the first surface to produce an image data.<br><br>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.<br>
<br>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<br><br>Hope this helps<br>--<br>karthik<br><br><br>
<br><div class="gmail_quote">On Tue, Jun 9, 2009 at 4:49 PM, Koen Vermeer <span dir="ltr">&lt;<a href="mailto:koen@vermeer.tv">koen@vermeer.tv</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks for the comments, but it seems that I haven&#39;t made myself clear<br>
enough... I was looking for a way to find the distance for all points of<br>
the surface; I&#39;m not looking for the minimum distance between the two<br>
surfaces. So, at the end, for surface A, I need the distance to surface<br>
B, for each point on surface A. Hence my idea to do a distance mapping<br>
based on surface B, and then extract the values for surface A.<br>
<br>
I can still use your kd-tree idea to efficiently get the distances; I<br>
just shouldn&#39;t limit myself to the minimum distance of all the points on<br>
the surface. I&#39;m just wondering is that approach is more efficient than<br>
a distance map.<br>
<br>
<br>
My goal is this: Assume that surface B is like a flat horizontal surface<br>
(with a certain thickness), with a hole in the center. Now, a fluid is<br>
flowing on the surface, and through the hole. I&#39;m interested in the area<br>
around the hole, and more specifically in the minimum thickness of the<br>
fluid layer in this area. My final goal is then to find a surface (like<br>
a band) around the hole with a minimum area, basically defining the<br>
minimum area that the fluid flows through. In my case, the horizontal<br>
surface is curved and bumpy, and the fluid isn&#39;t a fluid, but I guess<br>
this is the easiest way to visualize it.<br>
<br>
<br>
Best,<br>
<font color="#888888">Koen<br>
</font><div><div></div><div class="h5"><br>
On Tue, 2009-06-09 at 13:24 -0400, Arnaud Gelas wrote:<br>
&gt; Hi Koen,<br>
&gt;<br>
&gt; if you want an approximation of the minimal distance between the two<br>
&gt; surfaces one cheap and &quot;fast&quot; solution would be to consider point sets<br>
&gt; and found the shortest distance between these two sets. Note this is<br>
&gt; only an approximation and it won&#39;t help you if you need to check if the<br>
&gt; two surface intersects...<br>
&gt;<br>
&gt; If an approximation is ok for you, you could do the following:<br>
&gt; use a kd-tree where you store one of the two surface (let&#39;s say A).<br>
&gt; Then for the first point of the other surface (B) you search for the<br>
&gt; closest point on the (A) and you get the distance dist.<br>
&gt; Then for the next point you search all closest neighbor given the<br>
&gt; distance dist. If there are any you update dist as the minimum of these<br>
&gt; neighbors, else you don&#39;t change dist. You iterate.<br>
&gt;<br>
&gt; HTH<br>
&gt; Arnaud<br>
&gt;<br>
&gt; Leila Baghdadi wrote:<br>
&gt; &gt; Koen,<br>
&gt; &gt;<br>
&gt; &gt; one idea would be to convert your surfaces to binary mask images<br>
&gt; &gt; ( itkTriangleMeshToBinaryImageFilter) and then compare images voxel by<br>
&gt; &gt; voxel,<br>
&gt; &gt;<br>
&gt; &gt; HTH<br>
&gt; &gt;<br>
&gt; &gt; Leila<br>
&gt; &gt;<br>
&gt; &gt; On Tue, 2009-06-09 at 18:08 +0200, Koen Vermeer wrote:<br>
&gt; &gt;<br>
&gt; &gt;&gt; Hi,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; My experience with ITK is still rather limited, so I&#39;m looking for help<br>
&gt; &gt;&gt; on which approach would be the best for my problem.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; In a 3D volume (note that my pixels are not isotropic), I have two 2D<br>
&gt; &gt;&gt; surfaces (represented by a set of points, or a level set, or whatever<br>
&gt; &gt;&gt; the solution requires). I am looking for a way to determine the minimum<br>
&gt; &gt;&gt; distance between these two surfaces, for each point on these surfaces.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I was thinking about propagating one surface and recording some kind of<br>
&gt; &gt;&gt; distance map on the location of the second surface. Would something like<br>
&gt; &gt;&gt; a distance map be the most appropriate operator, a fast marching filter,<br>
&gt; &gt;&gt; or something else?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Any comments are appreciated; if more information is required, I&#39;d be<br>
&gt; &gt;&gt; more than happy to elaborate on the problem!<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Best,<br>
&gt; &gt;&gt; Koen<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _____________________________________<br>
&gt; &gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Visit other Kitware open-source projects at<br>
&gt; &gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; &gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; _____________________________________<br>
&gt; &gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt; &gt;<br>
&gt; &gt; Visit other Kitware open-source projects at<br>
&gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt; &gt;<br>
&gt; &gt; Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt; &gt;<br>
&gt; &gt; Follow this link to subscribe/unsubscribe:<br>
&gt; &gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt; &gt;<br>
&gt;<br>
<br>
_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
</div></div></blockquote></div><br><br clear="all"><br>