Week2 Flashcards
Translatie van afbeeldingen
- Om de coordinaten van pixels van het resultaatbeeld te krijgen, moeten de coordinaten opgehaald worden bij het originele beeld. (x,y) –> (x-t, y)
- Bij rotatie R Gebruik maken van de inverse van R van het origineel
R^-1 van [x,y] - Komt niet meteen bij een pixel waarde uit in resultaatbeeld dus dan interpolatie nodig
Rigid Body Motions (verschuiven en draaien van dingen) toch lineaire transformaties worden
- oorsprong moet zelfde blijven
- x –> R(x-t) +t
1. naar oorsprong halen
2. oorsprong matrix
3. terugzetten en eventueel verplaatsen
Verplaatsen van beeld zonder dat het beeld verandert
Behoud van hoeken tussen vectors en lengte van vectors
Combinatie rotatie en translatie (verschuiven)
Normaal kan je een translatie niet met een matrix beschrijven.
Een matrix beschrijft een linear transformation en de oorsprong mapped naar de oorsprong.
Extra getal bij matrix toevoegen om bij een matrix een translatie uit te voeren.
2D als 3D opvatten:
| 1 0 t1 | | x1 |
| 0 1 t2| | x2|
| 0 0 1 | | x3|
——————————————-
| x1 | Roteren
| x2| ->
| cos -sin | | x1 |
| sin cos | | x2| =
| x1cos - sinx2 |
| sinx1 cosx2 |
——————————————-
| x1 | | cos -sin 0 |
| x2| | sin cos 0 |
| 1 | | 0 0 1 |
——————————————-
x1 | | x1 + t1 |
| x2| -> | x2 + t2| =
| 1 | | 1 |
Homogeneous coordinates
Rotates een punt [x,y]T over an angle phi.
Eerst roteren over Rphi, dan transleren over t
[Rphi t] [x ] [Rphi x + t ]
[0^T 1 ] [1 ] = [ 1 ]
——————————————-
Affine (van vierkant naar paralellogram)
Als de oorsprong verplaatst dan
M * [u,v,1] worden de nieuwe coordinaten.
Waarbij M =
[a11, a12, a13] (nieuwe e1 x as)
[a21, a22, a23] nieuwe e2 (y as)
[0, 0, 1] (nieuwe O)
affine translatie matrix
[ i [t1, t2]T
[0, 0, 1]
identiteitsmatrix
affine rotation matrix
[ R [0,0]T
[0, 0, 1]
ortgonale matrix
affine scaling matrix
[ s1, 0, 0]
[0, s2, 0]
[0, 0, 1]
diagonale matrix
affine shearing matrix
[1, s, 0]
[0, 1, 0]
[0, 0, 1]
e1 -> e1
e2 -> e2 + Se1
Specifying affine transformations
Da = d —-> a = D⁻1 d
Ken 3 punten, maak 3 paar vergelijkingen in de onbekende matrix elementen.
[x1, y1, 1] =
[a11, a12, a13] ONBEKEND [a21, a22, a23] [0, 0, 1] * [u1, v1, 1] BEKEND (punten input)
[x2, y2, 1] BEKEND (output)
[x3, y3, 1]
enz.
Merge tot 1 matrix vergelijking. Omdat de onbekendne aan lineaire vergelijkingen voldoen. Kan daarna opgelost worden met dot product.
Met:
[a11, a12, a13, a21, a22, a23]
Waarom bij affine transformatie maar 3 punten nodig
Omdat het parallelogram is kan de coordinaten van het laatste punt gevonden worden door de andere punten. De rest wordt meegesleept.
Specifying affine transformations met meer punten
- Meer punten (data) is beter.
- Als je een zo goed mogelijke oplossing voor de matrix wil oplossen bij (te) veel punten dan least squares.
a* = (D^TD)⁻1 D^T d
Homogene coordinaten
2D met drie getallen
[x, y, z]T —> Z* [x/z, y/z, 1]T
Ieder positief veelvoud van een homogene vector geeft hetzelfde punt (zelfde locatie).
Projective transformations 2D
L [x,y,x]T = [3x3] * [u, v, 1]T
L = m31u + m32v + m33
Projective transformations 2D
L [x,y,x]T = [3x3] * [u, v, 1]T
L = m31u + m32v + m33
De lambda maakt niet heel veel uit wat dat is want toch schaalbaar.
Schaling van verschillende punten kan anders zijn.