Invert transformation matrix.
hom_mat_invert is used to invert a 4x3 transformation matrix HomTransMatOrg,i.e., the inverted transformation matrix HomTransMatInv describes the transformation from the original destination coordinate system to the original source coordinate system. The transformation of a 3D point (given in the source coordinate system) into a destination coordinate system ist given by a rotation R and a translation T (see hom_3d_trans). Thus, the following holds:
/ x2 \ / x1 \
| y2 | = R_org | y1 | + T_org
\ z2 / \ z1 /
/ x1 \ -1 / / x1 \ \
| y1 | = R_org | | y1 | - T_org |
\ z1 / \ \ z1 / /
-1
with R_inv = R_org and T_inv = - T_org:
/ x1 \ / x2 \
| y1 | = R_inv | y2 | + T_inv
\ z1 / \ z2 /
|
HomTransMatOrg (input_control) |
affin3d-array -> real |
| Original transformation matrix. | |
| Number of elements: 12 | |
|
HomTransMatInv (output_control) |
affin3d-array -> real |
| Inverted transformation matrix. | |
| Number of elements: 12 | |
/* read camera pose */ read_cam_pose(::'campose.dat':CamPose) > /* transform pose to transformation matrix */ pose_to_hom_mat(::CamPose:HomTransMat) > /* invert transformation matrix */ hom_mat_invert(::HomTransMat:HomTransMatInv).
hom_mat_invert returns TRUE if all parameter values are correct.
hom_3d_trans, hom_mat_to_pose, hom_mat_rot, hom_mat_translate, hom_mat_mult, hom_mat_values
hom_3d_trans, hom_mat_ident, hom_mat_rot, hom_mat_translate, pose_to_hom_mat, hom_mat_to_pose, hom_mat_mult, hom_mat_values