[vtkusers] Clustered landmark target points when using ICP

David Doria daviddoria at gmail.com
Tue Jul 7 09:55:15 EDT 2015

On Mon, Jul 6, 2015 at 12:38 PM, shantanu <shantanusvyas at gmail.com> wrote:

> Hey, I'm attempting to use the vtkIterativeClosestPointTransform to
> reconstruct the stanford bunny (mesh reconstruction from depth based
> images). When I attempt to do so I get misaligned meshes. I checked where
> the source and landmark points on each mesh were and for the source mesh
> they were scattered evenly across the mesh (Red) but for the target they
> were all clustered around the center/torso? of the bunny (green). Since the
> points are so concentrated in the center I assume the ICP is mismatching
> for
> that reason. Any suggestions on how to have the landmarks for the target be
> more even?
> Thanks

>From a quick look (line 292 in vtkIterativeClosestPointTransform.cxx), it
looks like the points to use are computed by stepping through the points
using a step size computed as:

    step = this->Source->GetNumberOfPoints() /
this->MaximumNumberOfLandmarks; // the default # landmarks is 200

There is no guarantee that doing this will result in points reasonably
spread over the mesh.

One thing you could do is downsample one or both meshes before doing the
ICP. This should let you control the number and distribution of points that
are used in the matching process while ensuring they are spaced over the
entire mesh. Then you can apply the transformation computed by the ICP
filter to the original mesh.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150707/c3680578/attachment.html>

More information about the vtkusers mailing list