[ITK] [ITK-dev] Compositions in ScaleVersor3D and ScaleSkewVersor3D Transforms

Bradley Lowekamp blowekamp at mail.nih.gov
Tue Dec 16 17:32:07 EST 2014


Hello,

I thought I'd just update folks with my progress, I am using symbolic computation to compute the need jacobian, with sympy:

http://nbviewer.ipython.org/urls/gist.githubusercontent.com/blowekamp/359f7d2e5221eae97a1b/raw/dd5614577474dc6b012406a238e702468c886e0b/ScaleSkewJacoboan.ipynb


Looks a bit hairy...

Brad

On Dec 12, 2014, at 12:11 PM, Bradley Lowekamp <blowekamp at mail.nih.gov> wrote:

> Hello,
> 
> This seems very wrong to me...
> 
> I was looking into the inverse of the classes. And I saw how the matrix was composed from the scale and versor components[1]
> 
>  newMatrix[0][0] = m_Scale[0] - 2.0 * ( yy + zz );
>  newMatrix[1][1] = m_Scale[1] - 2.0 * ( xx + zz );
>  newMatrix[2][2] = m_Scale[2] - 2.0 * ( xx + yy );
>  newMatrix[0][1] = 2.0 * ( xy - zw )  + ( m_Skew[0] );
>  newMatrix[0][2] = 2.0 * ( xz + yw )  + ( m_Skew[1] );
>  newMatrix[1][0] = 2.0 * ( xy + zw )  + ( m_Skew[2] );
>  newMatrix[1][2] = 2.0 * ( yz - xw )  + ( m_Skew[3] );
>  newMatrix[2][0] = 2.0 * ( xz - yw )  + ( m_Skew[4] );
>  newMatrix[2][1] = 2.0 * ( yz + xw )  + ( m_Skew[5] );
> 
> Similarly both classes just add the scale/skew component and don't do correct matrix composition.
> 
> Let R be the versor, S scale, and K skew matrices, and p be a point.
> 
> Currently we have:
> 
> (R+S+K)*p = R*p+S*p+K*p
> 
> Where I expected these classes would be implementing:
> 
> R*S*K*p
> 
> which is a traditional composition of transform matrices.
> 
> Anyone know where the current math came from? Or what it's really doing?
> 
> Is this something that we should fix/improve/evaluate? Or just document what's actually happening?
> 
> Brad
> 
> 
> 
> 
> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Core/Transform/include/itkScaleVersor3DTransform.hxx#L219-L227
> _______________________________________________
> 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://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-developers

_______________________________________________
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://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-developers


More information about the Community mailing list