[Insight-users] 3 pairs of points in 3D Iterative Closest Point registrations

Frank Miller frankmiller at jhmi.edu
Tue Oct 5 11:09:51 EDT 2010


Hi Patrik,

The itk::LandmarkBasedTransformInitializer does exactly what you want.
It can initialize a VersorRigid3DTransform given three pairs of points.
The key is that the pairs must correspond.

As for the issue you are having with the LevenbergMarquardtOptimizer,
you are trying to minimize the distance between the three point pairs
which is only three pieces of information. You need six to pieces of
information to describe a 3D rigid transform.

Frank

On Tue, 2010-10-05 at 10:06 +0200, Patrik Brynolfsson wrote:
> Hi,
> 
> 
> I am working on a project in where I have to register two images based
> on user input of corresponding points in the images. The images are in
> 3D so I opted for the VersorRigid3DTransform with the
> LevenbergMarquardtOptimizer, basically
> following IterativeClosestPoint2.cxx in the examples folder.
> Everything compiles fine, but I was planning on using 3 pairs of user
> selected points but the Levenberg-Marquardt optimizer complains:
> 
> 
> vnl_levenberg_marquardt: Number of unknowns(6) greater than number of
> data (3)
> 
> 
> Do I have to use another optimizer in order to use fewer than six
> points? Surely 3 pairs of points should be enough to determine a rigid
> transform in 3D?
> 
> ---
> Patrik Brynolfsson
> 
> 
> 
> _____________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users




More information about the Insight-users mailing list