[vtkusers] Several point clouds alignment using ICP

Tim Hutton tim.hutton at gmail.com
Fri Mar 4 09:31:35 EST 2011


Ah, yes, if your points don't correspond across the datasets then
Procrustes won't do what you want. For example, if point 832 is the
tip of a dog's nose in dataset one but the end of the dog's tail in
dataset two then Procrustes will align your dogs up back-to-front.

Sounds like you need to get ICP working first, then use it to align
the surfaces together. Procrustes works by finding the average shape,
aligning the average to dataset one, then aligning the other datasets
to the average. When the surfaces stop moving you're done. So you
could do something similar with ICP: align all the surfaces to dataset
one. There's no way to compute an average shape though, so that's all
you could do.

To get ICP working you might need to give it some hints. Do you know
anything about the correspondence? Do the surfaces have sufficient
overlapping parts for ICP to work? Do the surfaces have a sufficiently
similar shape for ICP to work?

On 4 March 2011 12:28, nuno.jf <nunofernandes7 at gmail.com> wrote:
> Hi there,
>
> I used ProcrustesAlignmentFilter but the problem is that the input point
> clouds need to have the exact same number of points. So it doesn't work
> well..If I use vtkMaskPoints  and set the maximum number of points to the
> same value, I believe it might work...
>
> At this moment I am using the following pipelin:
>
> Read polydata1; Read polydata 2 -> vtkTransformPolyDataFilter to apply a
> know transformation to polydata2 -> vtkIterativeClosestPointTransform to try
> to find transformation to align polydata 2 with polydata1 ->
> vtkTransformPolyDataFilter to apply the transformation given by ICP -
>>vtkAppendPolyData to append both point clouds.
>
> The problem is that using ICP I can't get a correct transformation for the
> alignment, even with a high number of iterations set up...
>
> I am thinking on getting back to ProcrustesAlignmentFilter. I am using
> VTKCleanPolydata to downsample the point clouds but I don't know what
> SetTolerance exactly does. I mean, I know that it changes the way the point
> cloud is sub sampled, but I don't know exactly what kind of relationship it
> sets between the input and the output.
>
> So, can anyone give me some advises regarding this subject? Basically, I
> just need to align 58 point clouds that have, at this moment, different
> number of points.
> Any help is greatly appreciated!
> Best regards,
>
> Nuno
>
> --
> View this message in context: http://vtk.1045678.n5.nabble.com/Several-point-clouds-alignment-using-ICP-tp3395391p3409401.html
> Sent from the VTK - Users mailing list archive at Nabble.com.
> _______________________________________________
> 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 VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>



-- 
Tim Hutton - http://www.sq3.org.uk - http://ferkeltongs.livejournal.com



More information about the vtkusers mailing list