Üblicherweise wird eine affine transormation von 2D-Punkten ist experssed als
x' = A*x
Wo x
ist ein Drei-Vektor [x; y; 1]
der ursprünglichen 2D-Position und x'
ist der transformierte Punkt. Die affine Matrix A
ist
A = [a11 a12 a13;
a21 a22 a23;
0 0 1]
Diese Form nützlich ist, wenn x
und A
sind knowns und Sie wünschen x'
zu erholen.
Sie können diese Beziehung jedoch auf eine andere Weise ausdrücken.
X = [xi yi 1 0 0 0;
0 0 0 xi yi 1 ]
und a
Lassen ein Spaltenvektor
a = [a11; a12; a13; a21; a22; a23]
Dann
X*a = [xi'; yi']
x_i, x_i'
gilt für alle Paare von entsprechenden Punkten.
Diese alternative Form ist sehr nützlich, wenn Sie die Übereinstimmung zwischen Punktpaaren kennen und die Parameter von A
wiederherstellen möchten.
Stapeln Sie alle Ihre Punkte in einer großen Matrix X
(zwei Zeilen für jeden Punkt) Sie haben 2 * n-by-6-Matrix X
mit 6-Vektor-Unbekannten multipliziert a
entspricht einem 2 * n-mal-1-Spalte Vektor der gestapelten entsprechenden Punkte (bezeichnet durch x_prime
):
X*a = x_prime
Auflösen nach a
:
a = X \ x_prime
erholt sich die Parameter der a
in einem Sinn der kleinsten Quadrate.
Viel Glück und hör auf, Klasse zu überspringen!
@chappjc Wenn das nur die gleiche Klasse wäre xD – DeeVu