0 Daumen
1,9k Aufrufe
Hallo - ich habe eine Frage zur Transformation von Punkten zwischen verschiedenen Koordinatensystemen.

Ich kenn die (3x3) Rotationsmatrix R und die (3x1) Translationsmatrix T zwischen den beiden Koordinatensystemen.

Wie kann ich nun einen Punkt des einen Systems in das andere umrechnen?

Ich habe drei Ansätze verfolgt für den Punkt P:

1. erst Translation dann Rotation: R*(T+P)

2. erst Rotation dann Translation: R*P + T

3. eine 4x4 Transformationsmatrix mit R links oben T rechts oben und 0 0 0 1 als letzte Zeile und dann M*P berechnet

Welche der drei Ansätze ist "richtig"? Bei dem 2. und 3. Ansatz komme ich auf die gleichen Werte als Ergebnis. Bei dem ersten Ansatz kommen andere Koordinaten raus.

Avatar von

1 Antwort

0 Daumen
Jeder der Ansätze ist richtig.

Wenn du eine Werttransformation vornimmst.


Z.B. möchte ich die Preise in meinem Laden anpassen, weil ich viel zu günstig bin. Zunächst multipliziere ich alle Preise mit 2 und weil das noch nicht Langt addiere ich zum Preis noch 1 Euro hinzu :-)

y = x*2 + 1

Nun könnte ich mir aber auch vorstellen ich addiere zunächst einen Euro und multipliziere danach alle Preise mit 2

y = (x + 1) * 2

Wird jetzt durch die beiden Translationen das gleiche Ausgedrückt ? Nein. das erkennen wir wenn wir mal ein paar Preise für x einsetzen. Da kommt nachher auch nicht das gleiche heraus. Genau so ist das im Zweidimensionalen oder dreidimensionalen. Es ist nicht egal ob man zuerst einen Punkt dreht und dann verschiebt oder zuerst verschiebt und dann dreht. Beide Möglichkeiten sind verschiedene Dinge.
Avatar von 489 k 🚀
Dank für deine schnelle Antwort!

Stimmt das klingt plausibel - aber ich wüsste jetzt immer noch nicht, wie ich vorgehen müsste in meinem Anwendungsfall :D

Also konkret geht es darum, dass ich zwei "3D"-Kameras habe, die Punkte in kartesischen Raumkoordinaten zurückgeben. Ich habe ein Verfahren angewendet, dass mir seperat die relative Transformation R und T zwischen den beiden Kameras zurückgibt. Ich möchte nun die Raumkoordinaten der einen Kamera in die der anderen Transformieren. Bei den bisherigen Versuchen ist mir das leider noch nicht gelungen.

Kann man pauschal sagen, wie man in diesem Anwendungsfall vorgehen muss oder kommt es darauf an, wie die R und T bestimmt wurden?

 

Das hängt davon ab wie man R und T bestimmt hat. Ich mache mal eine Skizze:

Wir haben also 2 Kameras, die dasselbe Geschehen aus 2 unterschiedlichen Perspektiven sehen. Der Einfachheit halber definiere ich mir einen Punkt der Im Sichtbereich beider Kameras ist. Das definiere ich dann als absoluten Nullpunkt. Kamera 1 Gibt mir die Koordinaten von den Dingen die sie sieht. Nun transformiere ich diese durch Verschiebung erstmal in den Nullpunkt. Dann drehe ich die Koordinaten um den Absuluten nullpunkt und Transformiere diese Koordinaten dann zurück in das Lokale System von Kamera 2. 

Vor der Drehung konnte eine Multiplikation stattfinden, je nachdem wie dich die Kamera das Geschehen betrachtet. oder wie der eigene Zoomfaktor der Kamera eingestellt ist.

Ok vielen Dank. Ich werde mal probieren das umzurechnen.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community