hom_mat3d_to_pose ( : : HomMat3D : Pose )

Convert a homogeneous transformation matrix into a 3D pose.

hom_mat3d_to_pose converts a homogeneous transformation matrix into the corresponding 3D pose with type code 0. For details about 3D poses and the corresponding transformation matrices please refer to create_pose.

A typical application of hom_mat3d_to_pose is that a 3D pose was converted into a homogeneous transformation matrix to further transform it, e.g., with hom_mat3d_rotate or hom_mat3d_translate, and now must be converted back into a pose to use it as input for operators like image_points_to_world_plane.


Parameters

HomMat3D (input_control)
affine3d-array -> real
Homogeneous transformation matrix.
Number of elements: 12

Pose (output_control)
pose-array -> real / integer
Equivalent 3D pose.
Number of elements: 7


Example
camera_calibration(WorldPointsX, WorldPointsY, WorldPointsZ,
                   PixelsRow, PixelsColumn, CamParam, StartPose,6,
                   FinalCamParam, FinalPose, Errors)
*  transform FinalPose to homogeneous transformation matrix 
pose_to_hom_mat3d(FinalPose, cam_H_cal)
*  rotate it 90 degree around the y-axis to obtain a world coordinate system
*  whose y- and z-axis lie in the plane of the calibration plate while the
*  x-axis point 'upwards': cam_H_w = cam_H_cal * RotY(90)
hom_mat3d_identity(HomMat3DIdent)
hom_mat3d_rotate(HomMat3DIdent, deg(90), 'y', 0, 0, 0,
                 HomMat3DRotateY)
hom_mat3d_compose(cam_H_cal, HomMat3DRotateY, cam_H_w)
*  transform back to pose
hom_mat3d_to_pose(cam_H_w, cam_P_w)
*  use pose to transform an image point into the world coordinate system
image_points_to_world_plane(FinalCamParam, cam_P_w, 87, 23.5, 1, 
                            w_px, w_py)

Result

hom_mat3d_to_pose returns 2 (H_MSG_TRUE) if all parameter values are correct. If necessary, an exception handling is raised


Parallelization Information

hom_mat3d_to_pose is reentrant and processed without parallelization.


Possible Predecessors

hom_mat3d_rotate, hom_mat3d_translate, hom_mat3d_invert


Possible Successors

camera_calibration, write_pose, disp_caltab, sim_caltab


See also

create_pose, camera_calibration, disp_caltab, sim_caltab, write_pose, read_pose, pose_to_hom_mat3d, project_3d_point, get_line_of_sight, hom_mat3d_rotate, hom_mat3d_translate, hom_mat3d_invert, affine_trans_point_3d


Module

Camera calibration



Copyright © 1996-2005 MVTec Software GmbH