| Operatoren |
pose_to_hom_mat3d — Konvertieren einer 3D-Lage (Pose) in eine homogene Transformationsmatrix.
pose_to_hom_mat3d konvertiert eine 3D-Lage Pose, z.B. die externen Kameraparameter, in die äquivalente homogene Transformationsmatrix HomMat3D. Details zu 3D-Lagen und den zugehörigen Transformationsmatrizen findet sich bei create_pose.
Ein typischer Anwendungsfall von pose_to_hom_mat3d ist, dass eine 3D-Lage weiter transformiert, z.B. mittels hom_mat3d_rotate oder hom_mat3d_translate rotiert oder verschoben werden soll. Im Falle der externen Kameraparameter kann dies nötig sein, wenn der Kalibrierkörper nicht so platziert werden kann, dass sein Koordinatensystem mit dem gewünschten Weltkoordinatensystem zusammenfällt.
Äquivalente homogene Transformationsmatrix.
* Calibrate camera.
calibrate_cameras (CalibDataID,Error)
* Get reference pose (pose 2 of calibration object 0).
get_calib_data (CalibDataID, 'calib_obj_pose',\
[0,2], 'pose', ObjInCameraPose)
* Convert pose to homogeneous transformation matrix.
pose_to_hom_mat3d(ObjInCameraPose, cam_H_cal)
* Rotate it 90 degrees around its 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, rad(90), 'y', 0, 0, 0, \
HomMat3DRotateY)
hom_mat3d_compose(cam_H_cal, HomMat3DRotateY, cam_H_w)
* Convert transformed matrix back to pose.
hom_mat3d_to_pose (cam_H_w, Pose)
Sind die Parameterwerte korrekt, dann liefert pose_to_hom_mat3d den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
affine_trans_point_3d, hom_mat3d_invert, hom_mat3d_translate, hom_mat3d_rotate, hom_mat3d_to_pose
create_pose, camera_calibration, write_pose, read_pose, hom_mat3d_to_pose, project_3d_point, get_line_of_sight, hom_mat3d_rotate, hom_mat3d_translate, hom_mat3d_invert, affine_trans_point_3d
Foundation
| Operatoren |