[ITK-users] [ITK] Estimation of initial rotation for Euler3DTransform

Sharmin Sultana ssult003 at odu.edu
Wed Jun 8 13:57:51 EDT 2016


Hi Tim
Thanks for your reply.
I have somewhat solve the pointset registration problem using
itkVersorRigid3DTransform.
Now the rotation is working fine after applying itk::TransformMeshFilter to
the initial mesh.

But I'm still unable to register those pointset using itk::AffineTransform. I
need to scale the initial mesh. Isn't it possible to apply affine transform
to a pointset or mesh ?

Thanks and Regards.
Sharmin

On Mon, Jun 6, 2016 at 5:23 AM, Timothee Evain <tevain at telecom-paristech.fr>
wrote:

> Hi Sharmin,
>
> If your are able to know which point of dataset 1 correspond to each point
> of dataset 2 (e.g. the point [-1.158 -9.962 -7.944] should match the point
> [70.3771 16.9556 -77.8874] after registration), then your problem is the
> one of Absolute Orientation. You could find the exact rotation solving this
> problem.
> You could refer to the Horn method (
> http://people.csail.mit.edu/bkph/papers/Absolute_Orientation.pdf) or the
> paper of Besl and McKay which introduce the ICP (
> http://graphics.stanford.edu/courses/cs164-09-spring/Handouts/paper_icp.pdf)
> to know how to do it. They are using quaternion for the rotation, but you
> could retrieve the rotation matrix from it, hence the euler angles (if you
> know the sequence of rotation, ITK's one is Z->Y->X if I remember
> correctly). Or you could go with the itkVersorRigid3DTransform.
>
> If you're unable to know the correspondence, you could maybe do a PCA to
> find principal directions (at least 2) of each curve, take a point in each
> direction plus the centroid, and resolve the Absolute Orientation with them
> (you need at least 3 points). But I've never tried it.
>
> HTH,
>
> Tim
>
>
>
> ----- Mail original -----
> De: "Sharmin Sultana" <ssult003 at odu.edu>
> À: insight-users at itk.org
> Envoyé: Samedi 4 Juin 2016 00:01:31
> Objet: [ITK] [ITK-users] Estimation of initial rotation for
>  Euler3DTransform
>
> Dear all,
>
> I am trying to register two pointsets where each pointset represents a
> curve. I have tried using the IterativeClosestPointRegistration2.cxx
> example. But the problem with the results here is that while the
> translation seems to be OK, the rotation is not when I do not set an
> initial rotation.
>
> According to the user guide, the Euler3DTranform cannot handle for large
> rotations, and the user has to provide an initial rotation that is correct
> to within 10 or 20 degrees. When I have provided the initial rotations, and
> the resulting registered curve seems to be correct. I got the initial
> rotations by manually rotating and translating the moving pointset in
> Paraview against the fixed pointset using the Transform filter.
>
> Is there a way to automatically estimate the initial rotation required?
> Below are the pointsets that I was using.
>
> Fixed PointSet
> 70.3771 16.9556 -77.8874
> 69.2143 17.2079 -77.253
> 68.1514 17.8068 -76.7957
> 66.9762 18.1519 -76.4658
> 65.8135 18.6132 -76.2163
> 64.67 19.0656 -75.7242
> 63.5119 19.2921 -75.3272
> 62.3751 19.597 -75.0951
> 61.2921 19.8394 -74.793
> 60.2845 20.1405 -74.4514
> 59.3191 20.3305 -74.1283
> 58.408 20.3767 -73.9007
> 57.5404 20.4277 -73.9293
> 56.8618 20.7408 -73.5224
> 55.4173 20.853 -72.9256
> 54.7285 20.8667 -72.693
> 53.6634 20.0938 -72.5906
>
> Moving PointSet:
> -1.158 -9.962 -7.944
> -1.026 -9.224 -7.430
> -0.883 -8.423 -6.872
> -0.757 -7.646 -6.300
> -0.640 -6.883 -5.727
> -0.518 -6.120 -5.179
> -0.406 -5.366 -4.622
> -0.352 -4.661 -4.000
> -0.291 -3.939 -3.394
> -0.185 -3.181 -2.817
> -0.042 -2.460 -2.183
> 0.074 -1.710 -1.531
> 0.174 -0.927 -0.853
> 0.296 -0.109 -0.120
> 0.459 0.737 0.693
> 0.640 1.647 1.657
> 0.861 2.763 2.808
>
> Thanks and regards,
>
>
> --
> Sharmin Sultana
> Old Dominion University
>
> _____________________________________
> 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.php
>
> 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://public.kitware.com/mailman/listinfo/insight-users
>
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/mailman/listinfo/community
>



--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20160608/34a2c5e3/attachment.html>


More information about the Insight-users mailing list