The Affine Transform Matrix is of the following form.
This matrix requires the bottom row to be [0 0 0 1] to preserve the homogeneous coordinates.
The matrix can be of type: RIGID, RIGID_SCALE and AFFINE. These different types represent different conditions on the allowable values for the matrix elements.
RIGID:
This transform requires the matrix obey orthonormal transformation properties:
for all combinations of j = 1,2,3 and k = 1,2,3 where δ = 1 for i = j and zero otherwise.
The expansion into non-matrix equations is:
M_{11} M_{11} + M_{21} M_{21} + M_{31} M_{31} = 1 where j = 1, k = 1
M_{11} M_{12} + M_{21} M_{22} + M_{31} M_{32} = 0 where j = 1, k = 2
M_{11} M_{13} + M_{21} M_{23} + M_{31} M_{33} = 0 where j = 1, k = 3
M_{12} M_{11} + M_{22} M_{21} + M_{32} M_{31} = 0 where j = 2, k = 1
M_{12} M_{12} + M_{22} M_{22} + M_{32} M_{32} = 1 where j = 2, k = 2
M_{12} M_{13} + M_{22} M_{23} + M_{32} M_{33} = 0 where j = 2, k = 3
M_{13} M_{11} + M_{23} M_{21} + M_{33} M_{31} = 0 where j = 3, k = 1
M_{13} M_{12} + M_{23} M_{22} + M_{33} M_{32} = 0 where j = 3, k = 2
M_{13} M_{13} + M_{23} M_{23} + M_{33} M_{33} = 1 where j = 3, k = 3
The Frame of Reference Transformation Matrix ^{A}M_{B} describes how to transform a point (B_{x},B_{y},B_{z}) with respect to RCS_{B} into (A_{x},A_{y},A_{z}) with respect to RCS_{A}.
The matrix above consists of two parts: a rotation and translation as shown below;
Rotation:
Translation:
The first column [M_{11},M_{21},M_{31} ] are the direction cosines (projection) of the X-axis of RCS_{B} with respect to RCS_{A} . The second column [M_{12},M_{22},M_{32}] are the direction cosines (projection) of the Y-axis of RCS_{B} with respect to RCS_{A.} The third column [M_{13},M_{23},M_{33}] are the direction cosines (projection) of the Z-axis of RCS_{B} with respect to RCS_{A.} The fourth column [T_{1},T_{2},T_{3}] is the origin of RCS_{B} with respect to RCS_{A}.
There are three degrees of freedom representing rotation, and three degrees of freedom representing translation, giving a total of six degrees of freedom.
RIGID_SCALE
The following constraint applies:
for all combinations of j = 1,2,3 and k = 1,2,3 where δ = 1 for i=j and zero otherwise.
The expansion into non-matrix equations is:
M_{11} M_{11} + M_{21} M_{21} + M_{31} M_{31} = S_{1} ^{2} where j = 1, k = 1
M_{11} M_{12} + M_{21} M_{22} + M_{31} M_{32} = 0 where j = 1, k = 2
M_{11} M_{13} + M_{21} M_{23} + M_{31} M_{33} = 0 where j = 1, k = 3
M_{12} M_{11} + M_{22} M_{21} + M_{32} M_{31} = 0 where j = 2, k = 1
M_{12} M_{12} + M_{22} M_{22} + M_{32} M_{32} = S_{2} ^{2} where j = 2, k = 2
M_{12} M_{13} + M_{22} M_{23} + M_{32} M_{33} = 0 where j = 2, k = 3
M_{13} M_{11} + M_{23} M_{21} + M_{33} M_{31} = 0 where j = 3, k = 1
M_{13} M_{12} + M_{23} M_{22} + M_{33} M_{32} = 0 where j = 3, k = 2
M_{13} M_{13} + M_{23} M_{23} + M_{33} M_{33} = S_{3} ^{2} where j = 3, k = 3
The above equations show a simple way of extracting the spatial scaling parameters Sj from a given matrix. The units of S_{j} ^{2} is the RCS unit dimension of one millimeter.
This type can be considered a simple extension of the type RIGID. The RIGID_SCALE is easily created by pre-multiplying a RIGID matrix by a diagonal scaling matrix as follows:
where M_{RBWS} is a matrix of type RIGID_SCALE and M_{RB} is a matrix of type RIGID.
AFFINE:
No constraints apply to this matrix, so it contains twelve degrees of freedom. This type of Frame of Reference Transformation Matrix allows shearing in addition to rotation, translation and scaling.
For a RIGID type of Frame of Reference Transformation Matrix, the inverse is easily computed using the following formula (inverse of an orthonormal matrix):
For RIGID_SCALE and AFFINE types of Registration Matrices, the inverse cannot be calculated using the above equation, and must be calculated using a conventional matrix inverse operation.