I have been trying to follow your suggestions, but I am somewhat hung up on the data set;<br>When you say <br>&nbsp; &nbsp; &nbsp;&nbsp; locator-&gt;SetDataSet(data); // data represents the surface<br>what is the representation of the surface?&nbsp; Is it the surface itself, or the maskpoints vertices data?&nbsp; I had originally imagined using the vertices to represent the surface in the locator, and measure the distance to this surface representation from a different point cloud, but your description takes the vertices, distorts them with noise and displaces the noisy vertices representation in space.&nbsp; I have been having trouble using locators (my application tends to crash at the implimentation of the &quot;findclosestpoint&quot; method), and I wonder if it is because I am using the wrong data set, be it from the filter producing my surface, or the maskpoints vertices data.<br>
<br>Jason<br><br><div class="gmail_quote">On Thu, Feb 21, 2008 at 4:57 AM, Steffen Oeltze &lt;<a href="mailto:stoeltze@isg.cs.uni-magdeburg.de">stoeltze@isg.cs.uni-magdeburg.de</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Yes, it works. Instead of creating the surface, I import a surface.<br>
Then, I&#39;m using vtkMaskPoints as well to randomly select surface<br>
vertices. Next, I apply some noise to these vertices, a little bit of<br>
translation and rotation. Finally, I use the ICP to bring the points<br>
back to the surface.<br>
<br>
Then, I measured the Euclidean distance between the transformed points<br>
(before and after ICP) and the surface. For that purpose, I use:<br>
<br>
<br>
vtkCellLocator *locator = vtkCellLocator::New();<br>
 &nbsp; &nbsp; &nbsp; &nbsp;locator-&gt;SetDataSet(data); // data represents the surface<br>
 &nbsp; &nbsp; &nbsp; &nbsp;locator-&gt;SetNumberOfCellsPerBucket(1);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;locator-&gt;BuildLocator();<br>
 &nbsp; &nbsp; &nbsp; &nbsp;locator-&gt;Update();<br>
<br>
in a loop:<br>
<br>
locator-&gt;FindClosestPoint(inPoint, closestPointOnSurface, cell_id,<br>
sub_id, dist2);<br>
<br>
Cheers,<br>
Steffen<br>
<br>
<br>
<br>
<br>
Jason Taclas schrieb:<br>
<div class="Ih2E3d">&gt; have you gotten this to work? &nbsp;I&#39;m having trouble on a similar project;<br>
&gt; I am also using vtkIterativeClosestPoint to register a point cloud to a<br>
&gt; surface, and I also need to make distance measurements. &nbsp;If it matters<br>
&gt; at all, my surface was created with vtkMarchingCubes. &nbsp;I used<br>
&gt; vtkMaskPoints with GenerateVerticesOn to get to vertices, is this what<br>
&gt; you did?<br>
&gt;<br>
&gt; On Feb 15, 2008 9:21 AM, Steffen Oeltze<br>
&gt; &lt;<a href="mailto:stoeltze@isg.cs.uni-magdeburg.de">stoeltze@isg.cs.uni-magdeburg.de</a><br>
</div><div class="Ih2E3d">&gt; &lt;mailto:<a href="mailto:stoeltze@isg.cs.uni-magdeburg.de">stoeltze@isg.cs.uni-magdeburg.de</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt; &nbsp; &nbsp; Thanks a lot for the hint! I&#39;m using vtkCellLocator now to determine the<br>
&gt; &nbsp; &nbsp; closest point on a surface for a given position in 3D.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Steffen<br>
&gt;<br>
&gt; &nbsp; &nbsp; <a href="mailto:cedric.schwartz@enst-bretagne.fr">cedric.schwartz@enst-bretagne.fr</a><br>
</div>&gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:cedric.schwartz@enst-bretagne.fr">cedric.schwartz@enst-bretagne.fr</a>&gt; schrieb:<br>
<div class="Ih2E3d">&gt; &nbsp; &nbsp; &nbsp;&gt; Hi,<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; As far as I know you can&#39;t have the distance information with the ICP<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; transform. Maybe you should try vtkPointLocator or vtkKdTree in<br>
&gt; &nbsp; &nbsp; order to<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; obtain the distance measure.<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; Cedric<br>
&gt; &nbsp; &nbsp; &nbsp;&gt;<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; _______________________________________________<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; This is the private VTK discussion list.Please keep messages<br>
&gt; &nbsp; &nbsp; on-topic.<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; Check the FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt; &nbsp; &nbsp; &nbsp;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; &nbsp; &nbsp; &nbsp;&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt; &nbsp; &nbsp; &nbsp;&gt;<br>
&gt; &nbsp; &nbsp; &nbsp;&gt;<br>
&gt;<br>
&gt;<br>
&gt; &nbsp; &nbsp; _______________________________________________<br>
&gt; &nbsp; &nbsp; This is the private VTK discussion list.<br>
&gt; &nbsp; &nbsp; Please keep messages on-topic. Check the FAQ at:<br>
&gt; &nbsp; &nbsp; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt; &nbsp; &nbsp; Follow this link to subscribe/unsubscribe:<br>
&gt; &nbsp; &nbsp; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
</div>&gt; ------------------------------------------------------------------------<br>
<div><div></div><div class="Wj3C7c">&gt;<br>
&gt; _______________________________________________<br>
&gt; This is the private VTK discussion list.<br>
&gt; Please keep messages on-topic. Check the FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br>
<br>
<br>
</div></div></blockquote></div><br>