[ITK] [ITK-users] Euler3DTransform not taking user defined Center of Rotation?
Francois Budin
francois.budin at kitware.com
Tue Apr 18 13:46:59 EDT 2017
Hello Matias,
I used the Euler3DTransform in a python terminal to see if I had problems
setting the center and the angle, and everything seems to work as expected:
trans=itk.Euler3DTransform.D.New()
trans.SetCenter([0,0,0])
trans.SetRotation(10,0,0)
trans.TransformPoint([0,0,0])
Out[46]: itkPointD3 ([0, 0, 0]) <-expected as the transform center is
[0,0,0]
trans.SetCenter([10,0,0])
trans.TransformPoint([0,0,0])
Out[48]: itkPointD3 ([5.16482, -7.96596, 3.62828]) <-rotation not around
[0,0,0] but around [10,0,0]
To try to understand you problem, I would advise you to print the content
of your transform to see if it is set as you expect. In my case, I get:
Euler3DTransform (0x18da8a0)
RTTI typeinfo: itk::Euler3DTransform<double>
Reference Count: 1
Modified Time: 377
Debug: Off
Object Name:
Observers:
none
Matrix:
0.483518 -0.362828 0.796596
0.796596 0.559609 -0.228631
-0.362828 0.745113 0.559609
Offset: [5.16482, -7.96596, 3.62828]
Center: [10, 0, 0]
Translation: [0, 0, 0]
Inverse:
0.483518 0.796596 -0.362828
-0.362828 0.559609 0.745113
0.796596 -0.228631 0.559609
Singular: 0
Euler's angles: AngleX=40 AngleY=10 AngleZ=10
m_ComputeZYX = 0
Hope this helps,
Francois
On Mon, Apr 17, 2017 at 7:11 PM, Matias <matimontg at gmail.com> wrote:
> Hi, I'm trying to rotate a volume and use an user defined center but no
> matter what value I set, it seems the rotation is always performed using
> the same center (not sure which, maybe a default center)? Here's the code
> I'm using.. am I missing something? typedef itk::Euler3DTransform< double >
> TransformType; //Transform TransformType::Pointer transform =
> TransformType::New(); double alfa, beta, gamma, centro_rotacion_X,
> centro_rotacion_Y, centro_rotacion_Z, origenX,origenY; gamma =
> atof(argv[2]); beta = atof(argv[3]); alfa = atof(argv[4]);
> centro_rotacion_X = atof(argv[5]); centro_rotacion_Y = atof(argv[6]);
> centro_rotacion_Z = atof(argv[7]); double centro[3] = { centro_rotacion_X,
> centro_rotacion_Y, centro_rotacion_Z }; transform->SetCenter(centro);
> transform->SetRotation(gamma, beta, alfa);
> ------------------------------
> View this message in context: Euler3DTransform not taking user defined
> Center of Rotation?
> <http://itk-users.7.n7.nabble.com/Euler3DTransform-not-taking-user-defined-Center-of-Rotation-tp38126.html>
> Sent from the ITK - Users mailing list archive
> <http://itk-users.7.n7.nabble.com/> at Nabble.com.
>
> _____________________________________
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20170418/55321df5/attachment.html>
-------------- next part --------------
_____________________________________
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
More information about the Community
mailing list