Image Warping CSE399b, Spring 7 Computer Vision http://maps.a9.com http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html
http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html
Autostiching on A9.com images, Spruce street, Philadelphia
Image Warping Slides from 5-463: Computational Photograph Aleei Efros, CMU, Fall 25 Some slides from Steve Seitz
Image Warping image filtering: change range of image g() T(f()) f T f image warping: change domain of image f g() f(t()) T f
Image Warping image filtering: change range of image g() T(f()) f T g image warping: change domain of image f g() f(t()) T g
Parametric (global) warping Eamples of parametric warps: translatio n rotation aspect affine perspective clindrical
Parametric (global) warping T p (,) p (,) Transformation T is a coordinate-changing machine: p T(p) What does it mean that T is global? Is the same for an point p can be described b just a few numbers (parameters) Let s represent T as a matri: p M*p M
Scaling Scaling a coordinate means multipling each of its components b a scalar Uniform scaling means this scalar is the same for all components: 2
Scaling Non-uniform scaling: different scalars per component: X 2, Y.5
Scaling Scaling operation: Or, in matri form: b a b a scaling matri S What s inverse of S?
2-D Rotation (, ) (, ) cos() - sin() sin() + cos()
2-D Rotation (, ) (, ) r cos () r sin () r cos ( + ) r sin ( + ) Trig Identit r cos() cos() r sin() sin() r sin() sin() + r cos() cos() Substitute cos() - sin() sin() + cos()
2-D Rotation This is eas to capture in matri form: cos sin( () sin () ( ) ( ) R cos( Even though sin() and cos() are nonlinear functions of, is a linear combination of and is a linear combination of and What is the inverse transformation? Rotation b For rotation matrices, det(r) so R R T
22 Matrices What tpes of transformations can be represented with a 22 matri? 2D Identit? 2D Scale around (,)? s s * * s s
22 Matrices What tpes of transformations can be represented with a 22 matri? 2D Rotate around (,)? * cos * sin * sin * cos + ( cos sin sin cos 2D Shear? sh sh + + * * sh sh
22 Matrices What tpes of transformations can be represented with a 22 matri? 2D Mirror about Y ais? 2D Mirror over (,)?
22 Matrices What tpes of transformations can be represented with a 22 matri? 2D Translation? + t + t NO Onl linear 2D transformations can be represented with a 22 matri
All 2D Linear Transformations Linear transformations are combinations of Scale, Rotation, Shear, and Mirror Properties of linear transformations: Origin maps to origin Lines map to lines Parallel lines remain parallel Ratios are preserved Closed under composition a c b d a c e d b g f i h k j l
Linear Transformations as Change of Basis j (,) v (v,v ) p p i (,) p4i+3j (4,3) p 4u+3v u v 4 u v p p u v 3 u v An linear transformation is a basis What s the inverse transform? How can we change from an basis to an basis? What if the basis are orthogonal? u(u,u ) p 4u +3v p 4u +3v
Homogeneous Coordinates Q: How can we represent translation as a 33 matri? + t + t
Homogeneous Coordinates Homogeneous coordinates represent coordinates in 2 dimensions with a 3-vector homogeneou scoords (
Homogeneous Coordinates Q: How can we represent translation as a 33 matri? A: Using the rightmost column: t t Translation t t + +
Translation Eample of translation + + t t t t t 2 t Homogeneous Coordinates
Homogeneous Coordinates Add a 3rd coordinate to ever 2D point (,, w) represents a point at location (/w, /w) (,, ) represents a point at infinit (,, ) is not allowed 2 (2,,) or (4,2,2) or (6,3,3) Convenient coordinate sstem to represent man useful transformations 2
Basic 2D Transformations Basic 2D transformations as 33 matrices ( cos sin sin cos t t sh sh Translate Rotate Shear s s Scale
Affine Transformations Affine transformations are combinations of Linear transformations, and Translations Properties of affine transformations: Origin does not necessaril map to origin Lines map to lines Parallel lines remain parallel Ratios are preserved Closed under composition Models change of basis w a d b e c f w
Projective Transformations Projective transformations Affine transformations, and Projective warps Properties of projective transformations: Origin does not necessaril map to origin Lines map to lines w Parallel lines do not necessaril remain parallel Ratios are not preserved Closed under composition Models change of basis a d g b e h c f i w
Matri Composition Transformations can be combined b matri multiplication ( ) * * +, - - -. - w s s t t w cos sin sin cos p T(t,t ) R() S(s,s ) p
2D image transformations These transformations are a nested set of groups Closed under composition and inverse is a member
Image warping T(,) f(,) g(,) Given a coordinate transform (, ) h(,) and a source image f(,), how do we compute a transformed image g(, ) f(t(,))?
Forward warping T(,) f(,) g(,) Send each piel f(,) to its corresponding location (, ) T(,) in the second image Q: what if piel lands between two piels?
Forward warping T(,) f(,) g(,) Send each piel f(,) to its corresponding location (, ) T(,) in the second image Q: what if piel lands between two piels? A: distribute color among neighboring piels (, ) Known as splatting
Inverse warping T - (,) f(,) g(,) Get each piel g(, ) from its corresponding location (,) T - (, ) in the first image Q: what if piel comes from between two piels?
Inverse warping T - (,) f(,) g(,) Get each piel g(, ) from its corresponding location (,) T - (, ) in the first image Q: what if piel comes from between two piels? A: Interpolate color value from neighbors nearest neighbor, bilinear, Gaussian, bicubic
Bilinear interpolation Sampling at f(,):
Forward vs. inverse warping Q: which is better? A: usuall inverse eliminates holes however, it requires an invertible warp function not alwas possible...