[Insight-users] Similarity3DTransform

Heike Moll Heike.Moll at rwth-aachen.de
Wed Jun 4 10:11:25 EDT 2008


Hi,

I am trying to implement a class named CenteredSimilarity3DTransform. 

This class is derived from Similarity3DTransform and is suposed to optimize the center of transformation (like CenteredSimilarity2DTransform).
My problem is the method GetJacobian( const InputPointType & p )!!
I have to rewrite the Jacobian matrix for 3D, so I tried to understand the calculation in the VersorRigid3DTransform class.

You used the equation P`=R*P+T.

But if I recalculate the jacobian matrix (whose elements are the partial derivatives of the output point with respect to the transform parameters) with above equation and the (quaternion) rotation matrix R:

R=1-2(y²+z²), 2xy-2wz, 2xz+2wy;
     2xy+2wz, 1-2(x²+z²), 2yz-2wx;
     2xz-2wy, 2yz+2wx, 1-2(x²+y²),

I get another result as the one used in VersorRigid3DTransform. The versor differs in all positions accept in the diagonal. 
Why? Did I use the wrong rotation matrix R? Or have I a logical mistake in my thoughts?

Thx Heike


More information about the Insight-users mailing list