Am besten affine Transformation bestimmen?



  • Angenommen ich habe drei Referenz- und drei Messpunkte in der Ebene. Wie bestimme ich approximativ am günstigsten die affine Transformation(-smatrix)?



  • Du mußt nur das dazugehörige (lineare) Gleichungssystem lösen. Wenn mich nicht alles täuscht läßt sich das sogar noch exakt lösen. Ansonsten kannst Du zum Beispiel Least-Squares benutzen um einen guten Mittelweg bei mehr Punktepaaren zu finden.



  • Mir fällt da irgendwie im Moment partout kein Ansatz mit der Least-Squares-Methode ein. Wenn ich mir das beispielsweise bei Wikipedia anschaue, so erhalte ich als Matrix ja keine affine Transformation mit Rotation und Translation.



  • Schreiben wir's doch mal im R^2 auf.

    Du suchst ne 2x2-Matrix A mit det(A)!=0 und nen 2D-Vektor b.
    Für alle Deine Punkte soll gelten:
    x' = A*x+b, also x transformieren liefert x'

    Das liefert lineare Gleichungen für A und b für jedes Punktepaar x,x' das Du hast. Die kannst Du direkt lösen, wenn Du genau so viele Punkte hast wie Du brauchst.

    Hast Du mehr und willst rauschen unterdrücken, dann kannst Du das so erreichen:
    Minimiere J(A,b) = Summe über alle Paare (x,x'): 1/2 * ||x'-A*x+b||^2.

    Um das zu erreichen mußt Du nur nach A und b ableiten und auf 0 lösen.

    MfG Jester



  • und noch Nebenbedingungen weil die Rotation ja nur vom Drehwinkel abhängt.
    eine einfache Linearisierung lässt sich mit der Helmert Transformation erreichen.



  • b7f7 schrieb:

    und noch Nebenbedingungen weil die Rotation ja nur vom Drehwinkel abhängt.

    Das verstehe ich nicht. Wo braucht man da noch Nebenbedingungen?



  • Er will eine Rotaion und Translation, das sind 3 Unbekannte. zwei Verschiebungen und ein Drehwinkel.
    Die nebenbedingungen sollten dafür sorgen das R orthogonal bleibt. oder halt nach helmert

    Ax+b = |ca,-sa|* |x| + |tx| = x'
           |sa, ca|  |y|   |ty| = y'
    für die pseudo unabhängigen Unbekannten (sa,ca) und (tx,ty) lösen
    


  • In dem Fall würde ich die Matrix halt mit dem Drehwinkel parametrisieren.

    Da jedoch nach einer affinen Transformation gefragt war sind auch Scherungen und Skalierungen erlaubt. Es bleibt daher nur die Forderung det A!=0.



  • Vielen Dank nochmal für die ausführlichere Beschreibung. So lässt sich das ganz gut umsetzen.


Anmelden zum Antworten