Posen

Liste der Operatoren ↓

Eine 3D-Lage (Pose) beschreibt eine starre Transformation, d.h., eine Transformation die aus einer beliebigen Translation und Rotation besteht. In HALCON ist eine 3D-Lage ein Tupel mit 7 Parametern: 3 Parameter legen die Translation fest (TransXTransXTransXTransXtransXtrans_x, TransYTransYTransYTransYtransYtrans_y und TransZTransZTransZTransZtransZtrans_z), 3 Parameter beschreiben die Rotation (RotXRotXRotXRotXrotXrot_x, RotYRotYRotYRotYrotYrot_y und RotZRotZRotZRotZrotZrot_z). Der letzte Parameter verschlüsselt die Reihenfolge der Translationen und Rotationen (sowie auch die Rotationsrichtung). Für weitere Informationen zu diesen Parametern wird auf create_posecreate_poseCreatePoseCreatePoseCreatePosecreate_pose und den „Solution Guide III-C - 3D Vision“ verwiesen.

3D-Lagen werden typischerweise für zwei Zwecke verwendet: Erstens zur Beschreibung der Position und Orientierung eines Koordinatensystems relativ zu einem anderen (z.B. die 3D-Lage eines Objektkoordinatensystems relativ zum Kamerakoordinatensystem - kurz, die 3D-Lage des Objekts relativ zur Kamera) und zweitens zur Beschreibung der Transformation von Koordinaten zwischen Koordinatensystemen (z.B. die Transformation von Objektkoordinaten in Kamerakoordinaten).

Eine 3D-Lage, welche Punktkoordinaten von einem Koordinatensystem 1 (cs1) in ein Koordinatensystem 2 (cs2) transformiert, wird als bezeichnet. Die entsprechende Transformation der Koordinaten eines Punktes in cs1 ( ) in cs2 ( ) wird wie folgt bezeichnet:

Es wird darauf hingewiesen, dass nicht die 3D-Lage (als Tupel) sondern die damit beschriebene Transformation für die Multiplikation verwendet wird und die oben verwendete Notation bloß der Lesbarkeit dient. Die 3D-Lage beschreibt die starre Transformation, welche durch die homogene Transformationsmatrix verkörpert wird (siehe create_posecreate_poseCreatePoseCreatePoseCreatePosecreate_pose für weitere Informationen):

Somit beschreibt die 3D-Lage die Transformation von Punktkoordinaten von cs1 nach cs2. Zudem beschreibt die 3D-Lage wie oben erwähnt die Transformation des Koordinatensystems selbst, jedoch in umgekehrter Reihenfolge. beschreibt, wie Koordinatensystem 2 transformiert werden muss, um Koordinatensystem 1 zu erhalten und damit die 3D-Lage von Koordinatensystem 2 relativ zu Koordinatensystem 1.

Mit dieser Notation können Posen wie homogene Matrizen verkettet werden, z.B. Eine solche Verkettung kann z.B. mittels pose_composepose_composePoseComposePoseComposePoseComposepose_compose durchgeführt werden.


Liste der Operatoren

convert_pose_typeConvertPoseTypeconvert_pose_typeConvertPoseTypeconvert_pose_type
Verändern des Darstellungstyps einer 3D-Lage (Pose).
create_poseCreatePosecreate_poseCreatePosecreate_pose
Erzeugen einer 3D-Lage (Pose).
deserialize_poseDeserializePosedeserialize_poseDeserializePosedeserialize_pose
Deserialisieren einer serialisierten 3D-Lage (Pose).
dual_quat_to_poseDualQuatToPosedual_quat_to_poseDualQuatToPosedual_quat_to_pose
Umwandeln einer dualen Quaternion in eine entsprechende 3D-Lage.
get_circle_poseGetCirclePoseget_circle_poseGetCirclePoseget_circle_pose
Bestimmen der 3D-Lage (Pose) eines Kreises aus seiner perspektivischen Projektion in 2D.
get_pose_typeGetPoseTypeget_pose_typeGetPoseTypeget_pose_type
Abfragen des Darstellungstyps einer 3D-Lage (Pose).
get_rectangle_poseGetRectanglePoseget_rectangle_poseGetRectanglePoseget_rectangle_pose
Bestimmen der 3D-Lage (Pose) eines Rechtecks aus seiner perspektivischen Projektion in 2D.
pose_averagePoseAveragepose_averagePoseAveragepose_average
Berechnet den Mittelwert einer Menge von Posen.
pose_composePoseComposepose_composePoseComposepose_compose
Komposition von 3D-Lagen aus zwei Tupeln.
pose_invertPoseInvertpose_invertPoseInvertpose_invert
Invertierung von als Tupel gegebenen 3D-Lagen.
pose_to_dual_quatPoseToDualQuatpose_to_dual_quatPoseToDualQuatpose_to_dual_quat
Umwandeln einer 3D-Lage in eine entsprechende duale Einheitsquaternion.
pose_to_quatPoseToQuatpose_to_quatPoseToQuatpose_to_quat
Wandelt die Rotation einer 3D-Lage in eine entsprechende Quaternion um.
proj_hom_mat2d_to_poseProjHomMat2dToPoseproj_hom_mat2d_to_poseProjHomMat2dToPoseproj_hom_mat2d_to_pose
Berechnen einer Pose anhand der Homographie von Weltkoordinaten zu Bildkoordinaten.
quat_to_poseQuatToPosequat_to_poseQuatToPosequat_to_pose
Wandelt eine Quaternion in die entsprechende 3D-Lage um.
read_poseReadPoseread_poseReadPoseread_pose
Lesen einer 3D-Lage (Pose) aus einer Textdatei.
serialize_poseSerializePoseserialize_poseSerializePoseserialize_pose
Serialisieren einer 3D-Lage (Pose).
set_origin_poseSetOriginPoseset_origin_poseSetOriginPoseset_origin_pose
Verschieben des Ursprungs einer 3D-Lage (Pose).
vector_to_poseVectorToPosevector_to_poseVectorToPosevector_to_pose
Berechnen einer absoluten Pose aus Punktkorrespondenzen von Welt- zu Bildkoordinaten.
write_poseWritePosewrite_poseWritePosewrite_pose
Speichern einer 3D-Lage (Pose) in eine Textdatei.