2-D Geometry
The Image Formation Pipeline
Outline Vector, matrix basics 2-D point transformations Translation, scaling, rotation, shear Homogeneous coordinates and transformations Homography, affine transformation
Notes on Notation (a little different from book) Vectors, points: x, v (assume column vectors) Matrices: R, T Scalars: x, a Axes, objects: X, Y, O Coordinate systems: W, C Number systems: R, Z Specials Transpose operator: xT (as opposed to x0) Identity matrix: Id Matrices/vectors of zeroes, ones: 0, 1
Block Notation for Matrices Often convenient to write matrices in terms of parts Smaller matrices for blocks Row, column vectors for ranges of entries on rows, columns, respectively E.g.: If A is 3 x 3 and :
2-D Transformations Types Mathematical representation Scaling Rotation Shear Translation Mathematical representation
2-D Scaling
2-D Scaling
2-D Scaling sx 1 Horizontal shift proportional to horizontal position
2-D Scaling sy 1 Vertical shift proportional to vertical position
2-D Scaling
Matrix form of 2-D Scaling
2-D Scaling
2-D Rotation
2-D Rotation µ
2-D Rotation µ
Matrix form of 2-D Rotation µ (this is a counterclockwise rotation; reverse signs of sines to get a clockwise one)
Matrix form of 2-D Rotation µ
2-D Shear (Horizontal)
2-D Shear (Horizontal) Horizontal displacement proportional to vertical position
(Shear factor h is positive for the figure above) 2-D Shear (Horizontal) (Shear factor h is positive for the figure above)
2-D Shear (Horizontal)
2-D Shear (Vertical) (v is negative for the figure above)
2-D Translation
2-D Translation
2-D Translation
2-D Translation
2-D Translation
2-D Translation
Representing Transformations Note that we’ve defined translation as a vector addition but rotation, scaling, etc. as matrix multiplications It’s inconvenient to have two different operations (addition and multiplication) for different forms of transformation It would be desirable for all transformations to be expressed in a common, linear form (since matrix multiplications are linear transformations)
Example: “Trick” of additional coordinate makes this possible Old way: New way:
Translation Matrix We can write the formula using this “expanded” transformation matrix as: From now on, assume points are in this “expanded” form unless otherwise noted:
Homogeneous Coordinates “Expanded” form is called homogeneous coordinates or projective space Technically, 2-D projective space P2 is defined as Euclidean space R3 ¡ (0, 0, 0)T Change to projective space by adding a scale factor (usually but not always 1):
Homogeneous Coordinates: Projective Space Equivalence is defined up to scale, (non-zero for finite points) Think of projective points in P2 as rays in R3, where z coordinate is scale factor All Euclidean points along ray are “same” in this sense
Leaving Projective Space Can go back to non-homogeneous representation by dividing by scale factor and dropping extra coordinate: This is the same as saying “Where does the ray intersect the plane defined by z = 1”?
Homogeneous Coordinates: Rotations, etc. A 2-D rotation, scaling, shear or other transformation normally expressed by a 2 x 2 matrix R is written in homogeneous coordinates with the following 3 x 3 matrix: The non-commutativity of matrix multiplication explains why different transformation orders give different results—i.e., RT TR In homogeneous form In homogeneous form
Example: Transformations Don’t Commute
Example: Transformations Don’t Commute
Example: Transformations Don’t Commute
Example: Transformations Don’t Commute
2-D Transformations Full-generality 3 x 3 homogeneous transformation is called a homography
Translation components 2-D Transformations Full-generality 3 x 3 homogeneous transformation is called a homography Translation components
Scale/rotation components 2-D Transformations Full-generality 3 x 3 homogeneous transformation is called a homography Scale/rotation components
Shear/rotation components 2-D Transformations Full-generality 3 x 3 homogeneous transformation is called a homography Shear/rotation components Shear/rotation off-diagonal (more about relationship between shearing and rotation at http://splorg.org/people/tobin/projects/israel/projects/paeth/rotation_by_shearing.html)
Homogeneous scaling factor 2-D Transformations Full-generality 3 x 3 homogeneous transformation is called a homography Homogeneous scaling factor
2-D Transformations Full-generality 3 x 3 homogeneous transformation is called a homography When these are zero (as they have been so far), H is an affine transformation