1 / 77

Image warping/morphing

Image warping/morphing. Digital Visual Effects, Spring 2005 Yung-Yu Chuang 2005/3/9. with slides by Richard Szeliski, Steve Seitz and Alexei Efros. Announcements. Class time: 1:30-4:20 (with a 20-minute break) Last call: send cyy@csie.ntu.edu.tw to subscribe vfx

wilmav
Download Presentation

Image warping/morphing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Image warping/morphing Digital Visual Effects, Spring 2005 Yung-Yu Chuang 2005/3/9 with slides by Richard Szeliski, Steve Seitz and Alexei Efros

  2. Announcements • Class time: 1:30-4:20 (with a 20-minute break) • Last call: send cyy@csie.ntu.edu.tw to subscribe vfx • Course forum is set up (see course page) • Scribe volunteers for today and next week • A schedule for scribes will be posted in forum soon. Please fill in the schedule.

  3. Outline • Images • Image warping • Image morphing • Project #1

  4. Image fundamentals

  5. B A Image formation

  6. Sampling and quantization

  7. What is an image • We can think of an image as a function, f: R2R: • f(x, y) gives the intensity at position (x, y) • defined over a rectangle, with a finite range: • f: [a,b]x[c,d]  [0,1] • A color image f x y

  8. A digital image • We usually operate on digital (discrete)images: • Sample the 2D space on a regular grid • Quantize each sample (round to nearest integer) • If our samples are D apart, we can write this as: f[i ,j] = Quantize{ f(i D, j D) } • The image can now be represented as a matrix of integer values

  9. Aliasing

  10. f g h x x Image processing g(x) = h(f(x))

  11. h(a)=1-a negative f g Point processing

  12. r=3 r=5 Image enhancement gamma mapping h(a)=ar

  13. Contrast stretching

  14. Histogram (1) (2) (3) (4)

  15. Accumulated histogram

  16. Histogram equalization (1) (2) (3) (4)

  17. Histogram matching It is useful for calibrating exposure.

  18. Neighborhood Processing (filtering) • Q: What happens if I reshuffle all pixels within the image? • A: It’s histogram won’t change. No point processing will be affected… • Need spatial information to capture this.

  19. Noise

  20. Noise reduction • Mean filter • Median filter • Gaussian filter

  21. Comparison: salt and pepper noise

  22. Comparison: Gaussian noise

  23. Image warping

  24. f f g h h x x x g x Image warping image filtering: change range of image g(x) = h(f(x)) image warping: change domain of image g(x) = f(h(x))

  25. h h image filtering: change range of image f(x) = h(g(x)) f g image warping: change domain of image f(x) = g(h(x)) f g

  26. Parametric (global) warping Examples of parametric warps: aspect rotation translation perspective cylindrical affine

  27. 2D coordinate transformations • translation: x’ = x + t x = (x,y) • rotation: x’ = R x + t • similarity: x’ =s R x + t • affine: x’ = A x + t • perspective: x’  H xx = (x,y,1) (x is a homogeneous coordinate) • These all form a nested group (closed under composition w/ inv.)

  28. 2D image transformations

  29. Image warping • Given a coordinate transform x’= h(x) and a source image f(x), how do we compute a transformed image g(x’)=f(h(x))? h(x) x x’ f(x) g(x’)

  30. Forward warping • Send each pixel f(x) to its corresponding location x’=h(x) in g(x’) • What if pixel lands “between” two pixels? h(x) x x’ f(x) g(x’)

  31. Forward warping • Send each pixel f(x) to its corresponding location x’=h(x) in g(x’) • What if pixel lands “between” two pixels? • Answer: add “contribution” to several pixels, normalize later (splatting) h(x) x x’ f(x) g(x’)

  32. Inverse warping • Get each pixel g(x’) from its corresponding location x=h-1(x’) in f(x) • What if pixel comes from “between” two pixels? h-1(x’) x x’ f(x) g(x’)

  33. Inverse warping • Get each pixel g(x’) from its corresponding location x=h-1(x’) in f(x) • What if pixel comes from “between” two pixels? • Answer: resample color value from interpolated (prefiltered) source image x x’ f(x) g(x’)

  34. Interpolation • Possible interpolation filters: • nearest neighbor • bilinear • bicubic • sinc / FIR

  35. Bilinear interpolation • A simple method for resampling images

  36. Bicubic interpolation http://astronomy.swin.edu.au/~pbourke/colour/bicubic/

  37. Non-parametric image warping • Specify a more detailed warp function • Splines, meshes, optical flow (per-pixel motion)

  38. Demo • http://www.colonize.com/warp/ • Warping is a useful operation for mosaics, video matching, view interpolation and so on.

  39. Image morphing

  40. Cross dissolving is a common transition between cuts, but it is not good for morphing because of the ghosting effects. image #2 image #1 dissolving Image morphing • The goal is to synthesize a fluid transformation from one image to another.

  41. Image morphing • Why ghosting? • Morphing = warping + cross-dissolving shape (geometric) color (photometric)

  42. cross-dissolving warp warp morphing Image morphing image #1 image #2

  43. Morphing sequence

  44. Artifacts of cross-dissolving http://www.salavon.com/

  45. Face averaging by morphing average faces

  46. Image morphing create a morphing sequence: for each time t • Create an intermediate warping field (by interpolation) • Warp both images towards it • Cross-dissolve the colors in the newly warped images

  47. t=0.25 t=0.75 t=0.5 morphing An ideal example t=0 t=1

  48. middle face (t=0.5) An ideal example t=0 t=1

  49. Warp specification (mesh warping) • How can we specify the warp? 1. Specify corresponding spline control points interpolate to a complete warping function easy to implement, but less expressive

  50. Warp specification (field warping) • How can we specify the warp? • Specify corresponding vectors • interpolate to a complete warping function • The Beier & Neely Algorithm

More Related