Frage

Lassen Sie uns sagen, ich habe 3-Punktwolken: zuerst die 3 Punkte hat {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3} und zweiten Punktwolke, die gleichen Punkte wie {xx1 hat , YY1, ZZ1}, {x2, y2, ZZ2}, {xx3, yy3, ZZ3} ... ich gehe davon zweiten Punktwolke auszurichten, zuerst muss ich zweite der Punkte durch T [3x3matrix] multiplizieren.

1) Wie finde ich diese Transformationsmatrix (T)? Ich habe versucht, die Gleichungen von Hand zu tun, aber nicht um sich zu lösen. Gibt es eine Lösung irgendwo, weil ich ziemlich sicher bin, ich bin nicht der erste in das Problem stolpern.

2) Ich gehe davon aus, dass Matrix könnten gehören Verkanten und Scheren. Gibt es eine Möglichkeit Matrix zu finden, mit nur 7 Freiheitsgraden (3translation, 3rotation, 1scale)?

War es hilfreich?

Lösung

Die T1-Transformationsmatrix, die die Einheitsvektoren nimmt {1, 0, 0}, {0, 1, 0} und {0, 0, 1} bis {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3} ist einfach

     | x1 x2 x3 |
T1 = | y1 y2 y3 |
     | z1 z2 z3 |

und ebenso die Umwandlung T2, die diese 3-Einheitsvektoren zu dem zweiten Satz von Punkten erfolgt ist

     | xx1 xx2 xx3 |
T2 = | yy1 yy1 yy3 |
     | zz1 zz2 zz3 |

Daher ist die Matrix, die die ersten drei Punkte auf die zweiten drei Punkte erfolgt durch T2 angegeben * T1 -1 . Wenn T1 nicht-singulär ist, dann wird diese Transformation eindeutig bestimmt, so hat es keine Freiheitsgrade. Wenn T1 eine singuläre Matrix ist, dann könnte es keine Lösungen sein, oder könnte es unendlich viele Lösungen sein.

Wenn Sie sagen, Sie wollen 7 Grad der Freiheit, das ist ein wenig von einem Missbrauch der Terminologie. Im allgemeinen Fall wird diese Matrix von 3 rotatorischen Freiheitsgraden, 3 Skalierung Grad und 3 Grad Zu, insgesamt 9. machen Sie diese Parameter herausfinden können, ein QR-Faktorisierung . Die Q-Matrix gibt, um die Rotationsparameter, und die R-Matrix liefert, um die Wichtungsparameter (entlang der Diagonale) und die Scherparameter (über der Diagonale).

Andere Tipps

Ansatz von Adam Rosenfield ist richtig. Aber Lösung als T2 * Inv (T1) ist falsch. Da in Matrix-Multiplikation A * B = B * A: So führen ist Inv (T1) * T2

Die sieben Parameter Transformation , die Sie sprechen wird als 3D-konforme Transformation bezeichnet wird, oder manchmal eine 3D gegebene Ähnlichkeitstransformation, dass die beiden Wolken ähnlich sind. Wenn die beiden Formen identisch sind, ist Adam Rosenfields Lösung gut. Wo gibt es kleine Unterschiede, und Sie wünschen, eine beste Passform zu erhalten, die am häufigsten verwendete Lösung ist ein Helmert-Transformation die verwendet eine der kleinsten Quadrate Ansatz, um die Rückstände zu minimieren. Die Wikipedia und Google Sachen auf diese scheint nicht groß auf einem Blick. Mein Hinweis auf das ist Ghilani & Wolf Anpassung Berechnungen , P345. Dies ist auch ein großes Buch auf Matrix Mathematik als zu räumlichen Problemen und eine gute Ergänzung zu der Bibliothek angewandt wird.

edit: Adams 9 Parameter-Version dieser Transformation als affine Transformation

Hier ist ein Beispiel der Berechnung der kleinsten Quadrate Schätzungen der Parameter eine 2D-affinen Transformation in R.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top