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 (TransXTransXTransXTransXtransX, TransYTransYTransYTransYtransY und TransZTransZTransZTransZtransZ), 3 Parameter beschreiben die Rotation (RotXRotXRotXRotXrotX, RotYRotYRotYRotYrotY und RotZRotZRotZRotZrotZ). 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_poseCreatePoseCreatePoseCreatePose 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_poseCreatePoseCreatePoseCreatePose 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_composePoseComposePoseComposePoseCompose durchgeführt werden.


Liste der Operatoren

convert_pose_typeConvertPoseTypeConvertPoseTypeconvert_pose_type
Verändern des Darstellungstyps einer 3D-Lage (Pose).
create_poseCreatePoseCreatePosecreate_pose
Erzeugen einer 3D-Lage (Pose).
deserialize_poseDeserializePoseDeserializePosedeserialize_pose
Deserialisieren einer serialisierten 3D-Lage (Pose).
dual_quat_to_poseDualQuatToPoseDualQuatToPosedual_quat_to_pose
Umwandeln einer dualen Quaternion in eine entsprechende 3D-Lage.
get_circle_poseGetCirclePoseGetCirclePoseget_circle_pose
Bestimmen der 3D-Lage (Pose) eines Kreises aus seiner perspektivischen Projektion in 2D.
get_pose_typeGetPoseTypeGetPoseTypeget_pose_type
Abfragen des Darstellungstyps einer 3D-Lage (Pose).
get_rectangle_poseGetRectanglePoseGetRectanglePoseget_rectangle_pose
Bestimmen der 3D-Lage (Pose) eines Rechtecks aus seiner perspektivischen Projektion in 2D.
pose_averagePoseAveragePoseAveragepose_average
Berechnet den Mittelwert einer Menge von Posen.
pose_composePoseComposePoseComposepose_compose
Komposition von 3D-Lagen aus zwei Tupeln.
pose_invertPoseInvertPoseInvertpose_invert
Invertierung von als Tupel gegebenen 3D-Lagen.
pose_to_dual_quatPoseToDualQuatPoseToDualQuatpose_to_dual_quat
Umwandeln einer 3D-Lage in eine entsprechende duale Einheitsquaternion.
pose_to_quatPoseToQuatPoseToQuatpose_to_quat
Wandelt die Rotation einer 3D-Lage in eine entsprechende Quaternion um.
proj_hom_mat2d_to_poseProjHomMat2dToPoseProjHomMat2dToPoseproj_hom_mat2d_to_pose
Berechnen einer Pose anhand der Homographie von Weltkoordinaten zu Bildkoordinaten.
quat_to_poseQuatToPoseQuatToPosequat_to_pose
Wandelt eine Quaternion in die entsprechende 3D-Lage um.
read_poseReadPoseReadPoseread_pose
Lesen einer 3D-Lage (Pose) aus einer Textdatei.
serialize_poseSerializePoseSerializePoseserialize_pose
Serialisieren einer 3D-Lage (Pose).
set_origin_poseSetOriginPoseSetOriginPoseset_origin_pose
Verschieben des Ursprungs einer 3D-Lage (Pose).
vector_to_poseVectorToPoseVectorToPosevector_to_pose
Berechnen einer absoluten Pose aus Punktkorrespondenzen von Welt- zu Bildkoordinaten.
write_poseWritePoseWritePosewrite_pose
Speichern einer 3D-Lage (Pose) in eine Textdatei.