Download presentation
Presentation is loading. Please wait.
1
Image Processing and Morphing Vision for Graphics CSE 590SS, Winter 2001 Richard Szeliski
2
Image Pyramids
3
1/8/2001Vision for Graphics3 Image Pyramids
4
1/8/2001Vision for Graphics4 Pyramid Creation “Laplacian” Pyramid Created from Gaussian pyramid by subtraction L l = G l – expand(G l+1 ) filter mask “Gaussian” Pyramid
5
1/8/2001Vision for Graphics5 Octaves in the Spatial Domain Bandpass Images Lowpass Images
6
1/8/2001Vision for Graphics6 Pyramids Advantages of pyramids Faster than Fourier transform Avoids “ringing” artifacts Many applications small images faster to process good for multiresolution processing compression progressive transmission Known as “mip-maps” in graphics community Precursor to wavelets Wavelets also have these advantages
7
1/8/2001Vision for Graphics7 laplacian level 4 laplacian level 2 laplacian level 0 left pyramidright pyramidblended pyramid
8
1/8/2001Vision for Graphics8 Pyramid Blending
9
Image Warping
10
1/8/2001Vision for Graphics10 Image Warping image filtering: change range of image g(x) = h(f(x)) image warping: change domain of image g(x) = f(h(x)) f x h f x f x h f x
11
1/8/2001Vision for Graphics11 Image Warping image filtering: change range of image g(x) = h(f(x)) image warping: change domain of image g(x) = f(h(x)) hh f f g g
12
1/8/2001Vision for Graphics12 Parametric (global) warping Examples of parametric warps: translation rotation aspect affine perspective cylindrical
13
1/8/2001Vision for Graphics13 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 x x = (x,y,1) (x is a homogeneous coordinate) These all form a nested group (closed w/ inv.)
14
1/8/2001Vision for Graphics14 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))? f(x)f(x)g(x’) xx’ h(x)h(x)
15
1/8/2001Vision for Graphics15 Forward Warping Send each pixel f(x) to its corresponding location x’ = h(x) in g(x’) f(x)f(x)g(x’) xx’ h(x)h(x) What if pixel lands “between” two pixels?
16
1/8/2001Vision for Graphics16 Forward Warping Send each pixel f(x) to its corresponding location x’ = h(x) in g(x’) f(x)f(x)g(x’) xx’ h(x)h(x) What if pixel lands “between” two pixels? Answer: add “contribution” to several pixels, normalize later (splatting)
17
1/8/2001Vision for Graphics17 Inverse Warping Get each pixel g(x’) from its corresponding location x = h -1 (x’) in f(x) f(x)f(x)g(x’) xx’ h -1 (x’) What if pixel comes from “between” two pixels?
18
1/8/2001Vision for Graphics18 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 f(x)f(x)g(x’) xx’
19
1/8/2001Vision for Graphics19 Interpolation Possible interpolation filters: nearest neighbor bilinear bicubic (interpolating) sinc / FIR Needed to prevent “jaggies” and “texture crawl” (see demo)
20
1/8/2001Vision for Graphics20 Prefiltering Essential for downsampling (decimation) to prevent aliasing MIP-mapping [Williams’83]: 1.build pyramid (but what decimation filter?): –block averaging –Burt & Adelson (5-tap binomial) –7-tap wavelet-based filter (better) 2. trilinear interpolation –bilinear within each 2 adjacent levels –linear blend between levels (determined by pixel size)
21
1/8/2001Vision for Graphics21 Prefiltering Essential for downsampling (decimation) to prevent aliasing Other possibilities: summed area tables elliptically weighted Gaussians (EWA) [Heckbert’86]
22
1/8/2001Vision for Graphics22 Image Warping – non-parametric Specify more detailed warp function Examples: splines triangles optical flow (per-pixel motion)
23
1/8/2001Vision for Graphics23 Image Warping – non-parametric Move control points to specify spline warp
24
Image Morphing
25
1/8/2001Vision for Graphics25 Image Morphing How can we in-between two images? 1.Cross-dissolve (all examples from [Gomes et al.’99])
26
1/8/2001Vision for Graphics26 Image Morphing How can we in-between two images? 2.Warp then cross-dissolve = morph
27
1/8/2001Vision for Graphics27 Warp specification How can we specify the warp? 1.Specify corresponding points interpolate to a complete warping function Nielson, Scattered Data Modeling, IEEE CG&A’93]
28
1/8/2001Vision for Graphics28 Warp specification How can we specify the warp? 2.Specify corresponding vectors interpolate to a complete warping function
29
1/8/2001Vision for Graphics29 Warp specification How can we specify the warp? 2.Specify corresponding vectors interpolate [Beier & Neely, SIGGRAPH’92]
30
1/8/2001Vision for Graphics30 Warp specification How can we specify the warp? 3.Specify corresponding spline control points interpolate to a complete warping function
31
1/8/2001Vision for Graphics31 Final Morph Result
32
Image Mosaics
33
1/8/2001Vision for Graphics33 Image Mosaics (stitching) Blend together several overlapping images into one seamless mosaic (composite) + + … +=
34
Mosaics for Video Coding Convert masked images into a background sprite for content-based coding + + + =
35
1/8/2001Vision for Graphics35 f = 180 (pixels) Cylindrical Panoramas Map image to cylindrical or spherical coordinates need known focal length Image 384x300f = 380f = 280
36
1/8/2001Vision for Graphics36 Cylindrical warping Given focal length f and image center (x c,y c ) X Y Z (X,Y,Z)(X,Y,Z) (sin ,h,cos )
37
1/8/2001Vision for Graphics37 Radial distortion Correct for “bending” in wide field of view lenses
38
1/8/2001Vision for Graphics38 Image Stitching 1.Align the images over each other 2.Blend the images together (demo)
39
1/8/2001Vision for Graphics39 Image Stitching Assignment 1.Take pictures on a tripod (or handheld) 2.Warp to cylindrical coordinates 3.Automatically compute pairwise alignments 4.Fix up the end-to-end alignment 5.Blend the images together 6.Crop the result and import into a viewer
40
1/8/2001Vision for Graphics40 Image registration (preview) How do we determine alignment between images? One possible answer: block matching (correlation), i.e., find minimum squared error
41
1/8/2001Vision for Graphics41 Image registration (preview) How do we determine alignment between images? Another possible answer: Fourier-domain correlation [Brown’92] or phase correlation [Kuglin & Hines’75] More on alignment/registration on Wednesday [Anandan]
42
1/8/2001Vision for Graphics42 Full-view Panorama + + + +
43
1/8/2001Vision for Graphics43 Texture Mapped Model
44
Image Enhancement
45
1/8/2001Vision for Graphics45 Image Enhancement Noise removal: low-pass filtering g(x) = h(x) f(x) = i h(-i) f(x+i) median filtering anisotropic diffusion –iteratively smooth with similar neighbors [Perona & Malik’90] Sharpening: “unsharp masking” –remove a little bit of blurred image from original (darkroom trick)
46
1/8/2001Vision for Graphics46 Image Enhancement Super-resolution: hallucinate more detail from single low-res image [Freeman & Pasztor,ICCV’99] –“learn” mapping between levels combine several low-res images using known (linear) formation model [Irani’91;Mann’94]
47
1/8/2001Vision for Graphics47 Image Enhancement Super-resolution: [Freeman & Pasztor,ICCV’99] –mapping between levels depends on “training data”
48
1/8/2001Vision for Graphics48 Image Enhancement Brightness and gamma correction linearize input brightness Histogram equalization balance (“flatten”) distribution of brightness values
49
1/8/2001Vision for Graphics49 Image Enhancement High dynamic range photography [Debevec et al.’97; Mitsunaga & Nayar’99] combine several different exposures together
50
1/8/2001Vision for Graphics50 Feature extraction edge detection zero crossings hysteresis filtering (Canny) orientationally selective filters edge linking polygonal simplification for line extraction
51
1/8/2001Vision for Graphics51 Feature extraction line detection Hough transform: the bad way (vote for all possible lines) Hough transform: better way (vote according to local orientation); can also extend to vanishing point voting VideoMouse application? (related to project 2)
52
1/8/2001Vision for Graphics52 Bibliography L. Williams. Pyramidal parametrics. Computer Graphics, 17(3):1--11, July 1983. L. G. Brown. A survey of image registration techniques. Computing Surveys, 24(4):325--376, December 1992. C. D. Kuglin and D. C. Hines. The phase correlation image alignment method. In IEEE 1975 Conference on Cybernetics and Society, pages 163--165, New York, September 1975. J. Gomes, L. Darsa, B. Costa, and L. Velho. Warping and Morphing of Graphical Objects. Morgan Kaufmann Publishers, San Francisco Altos, California, 1999. G. M. Nielson. Scattered data modeling. IEEE Computer Graphics and Applications, 13(1):60--70, January 1993. T. Beier and S. Neely. Feature-based image metamorphosis. Computer Graphics (SIGGRAPH'92), 26(2):35--42, July 1992.
53
1/8/2001Vision for Graphics53 Bibliography L. Williams. Performace driven facial animation. Computer Graphics, 24(4):235--242, 1990. P. Perona and J. Malik. Scale space and edge detection using anisotropic diffusion. IEEE Transactions on Pattern Analysis and Machine Intelligence, 12(7):629--639, July 1990. W. T. Freeman and E. C. Pasztor. Learning low-level vision. In Seventh International Conference on Computer Vision (ICCV'99), pages 1182--1189, Kerkyra, Greece, September 1999. M. Irani and S. Peleg. Improving resolution by image registration. Graphical Models and Image Processing, 53(3):231--239, May 1991. S. Mann and R. W. Picard. Virtual bellows: Constructing high-quality images from video. In First IEEE International Conference on Image Processing (ICIP-94), volume I, pages 363--367, Austin, Texas, November 1994.
54
1/8/2001Vision for Graphics54 Bibliography Paul E. Debevec and Jitendra Malik. Recovering high dynamic range radiance maps from photographs. Proceedings of SIGGRAPH 97, pages 369--378, August 1997. ISBN 0-89791-896-7. Held in Los Angeles, California. T. Mitsunaga and S. K. Nayar. Radiometric self calibration. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'99), volume 1, pages 374--380, Fort Collins, June 1999.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.