<br><div class="gmail_quote">On Sun, May 29, 2011 at 4:08 PM, Luca Penasa <span dir="ltr"><<a href="mailto:luca.penasa@gmail.com" target="_blank">luca.penasa@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi everybody,<br>
I am trying to register two lidar-generated point clouds, using the<br>
vtkIterativeClosestPointTransform Class. maybe i did not understood how<br>
this algorithm works but the results are not what i would like.<br>
<br>
Some notes:<br>
- the two clouds are not identical, so only a small part of the two are<br>
in common.<br>
- i start with a first approximation of the needed rigid-body transform,<br>
computed with a set of homologous points given by hand. I apply this<br>
transform as LandmarkTransform before starting the ICP execution.<br>
<br>
Output from transform filter appear to be too different from my initial<br>
guess. The two clouds are now completely overlapping.<br>
<br>
Does anybody use this class for registration of this kind of data?<br>
Why the ICP force to overlap the two clouds? Appear as the algorithm is<br>
trying to get the maximum overlapping and not the minimum point-to-point<br>
distance.<br>
<br>
<br>
Thank you<br></blockquote><div><br>The VTK implementation of ICP assumes the point clouds are completely overlapping.<br><br>A small change will ignore points that are too far away from a point in the other point cloud during the error computation:<br>
<a href="http://public.kitware.com/Bug/view.php?id=8983">http://public.kitware.com/Bug/view.php?id=8983</a><br clear="all"><br>David <br></div></div>