| Operatoren |
pose_average — Berechnet den Mittelwert einer Menge von Posen.
pose_average mittelt die Rotation und die Translation der in Poses übergebenen Posen und liefert die gemittelte Pose in AveragePose zurück. Die Posen können über den Parameter Weights gewichtet werden. Wird ein leeres Tupel übergeben, so haben alle Posen den gleichen Einfluss und werden gleich behandelt. Andernfalls muss ein Tupel übergeben werden dessen Länge der Anzahl der Posen entspricht und welches für jede Pose ein positives Gewicht enthält. Ein höheres Gewicht entspricht einem stärkeren Einfluss der Pose auf den Mittelwert.
pose_average unterstützt zwei Verfahren zur Mittelung der Posen, welche über den Parameter Mode ausgewählt werden können. 'direct' wählt ein direktes Lösungsverfahren, bei dem Translation und Rotation unabhängig gemittelt werden und das Ergebnis unmittelbar zurückgegeben wird. 'iterative' verwendet die mit 'direct' ermittelte Pose als Startwert für ein iteratives Verfahren, welches den lokalen Modus der Posen bestimmt. Das iterative Verfahren ist langsamer als das direkte Verfahren, liefert aber vor allem beim Vorhandensein von Ausreißern genauere Ergebnisse zurück. Dabei werden Posen, die von der mittleren Pose stark abweichen, geringer gewichtet.
Für das iterative Verfahren kann die relative Gewichtung der Rotation und der Translation über die Parameter SigmaT und SigmaR gesetzt werden. Jeder der beiden Werte kann auf 'auto' gesetzt werden, wodurch er automatisch geschätzt wird. Für SigmaT wird dabei die Streuung der Translationen der übergebenen Posen verwendet, für SigmaR wird eine fester Wert verwendet. Die Werte beschreiben die erwartete Streuung der Translation bzw. Rotation. Für das direkte Verfahren werden die beiden Parameter ignoriert.
In Quality wird ein Maß für die Qualität der gefundenen Pose zurückgegeben. Quality ist stets ein vierelementiges Tupel, welches die mittlere und maximale Abweichung der Translation und Rotation der gemittelten Pose von den übergebenen Posen zurückgibt. Die Rotation wird dabei in Grad angegeben. Die Reihenfolge der Werte ist: Mittlerer quadratischer Translationsfehler, mittlerer quadratischer Rotationsfehler, maximale Translations- und maximale Rotationsabweichung. Evtl. in Weights übergebene Gewichte der Posen werden für die mittlere quadratische Translations- und Rotationsfehler berücksichtigt, aber nicht für die andere zwei Werte des Qualitätsschätzers.
Liste von Posen deren Mittelwert berechnet wird.
Gewichte der Posen, oder ein leeres Tupel.
Defaultwert: []
Restriktion: Weights > 0 && length(Weights) == 0 || length(Weights) == length(Poses) / 7
Art der Mittelwertbildung.
Defaultwert: 'iterative'
Werteliste: 'direct', 'iterative'
Gewicht der Translation.
Defaultwert: 'auto'
Wertevorschläge: 'auto', 0.1, 1, 100
Gewicht der Rotation.
Defaultwert: 'auto'
Wertevorschläge: 'auto', 0.1, 1, 10
Gewichteter Mittelwert der Posen.
Abweichung des Mittelwerts von den Eingabeposen.
Zusicherung: length(Quality) == 4
Sind alle Parameter gültig, dann liefert pose_average den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
read_pose, hom_mat3d_to_pose, pose_to_hom_mat3d
Foundation
| Operatoren |