[Insight-users] Rigid ICP

David Doria daviddoria+itk at gmail.com
Sun Jul 12 17:07:27 EDT 2009


I modified one of the registration examples in an attempt to do a
rigid ICP between 2 sets of points.

I set the transform to a itkRigid3DTransform, but when it runs it says
"Attempting to set a non-orthogonal rotation matrix."

My example code is here:
http://rpi.edu/~doriad/ICP.cpp

The initialization is the identity matrix, so I'm assuming the
non-orthogonal matrix is being set within the
itkPointSetToPointSetRegistrationMethod.

It looks like the itkPointSetToPointSetRegistrationMethod is templated
on the type of transform I pass it, so why wouldn't this work? The
optimizer should restrict the search to the domain of transforms that
fit the specified transform type, right?

On a separate note: from previous list posts, it looks like to
transform a set of points, they need to be in an itkMesh (even though
there is no topology) so itkTransformMeshFilter can be used. Does it
seem like a worth while feature request to make an
itkTransformPointSetFilter ?

Thanks,

David


More information about the Insight-users mailing list