image blending and compositingcs194-26/fa15/lectures/...compositing procedure 1. extract sprites...

88
Image Blending and Compositing © NASA CS194: Image Manipulation & Computational Photography Alexei Efros, UC Berkeley, Fall 2015

Upload: others

Post on 11-Mar-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Image Blending and Compositing

© NASA

CS194: Image Manipulation & Computational Photography Alexei Efros, UC Berkeley, Fall 2015

Page 2: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Image Compositing

Page 3: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop)

Composite by David Dewey

2. Blend them into the composite (in the right order)

Page 4: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pyramid Blending

Page 5: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradient Domain vs. Frequency Domain In Pyramid Blending, we decomposed our

images into several frequency bands, and transferred them separately • But boundaries appear across multiple bands

But what about representation based on derivatives (gradients) of the image?: • Represents local change (across all frequences) • No need for low-res image

– captures everything (up to a constant) • Blending/Editing in Gradient Domain:

– Differentiate – Copy / Blend / edit / whatever – Reintegrate

Page 6: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradients vs. Pixels

Page 7: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gilchrist Illusion (c.f. Exploratorium)

Page 8: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them
Page 9: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

White?

Page 10: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

White?

Page 11: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

White?

Page 12: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them
Page 13: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Drawing in Gradient Domain

James McCann & Nancy Pollard

Real-Time Gradient-Domain Painting, SIGGRAPH 2009

(paper came out of this class!) http://www.youtube.com/watch?v=RvhkAfrA0-w&feature=youtu.be

Page 14: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradient Domain blending (1D)

Two signals

Regular blending

Blending derivatives

bright

dark

Page 15: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradient hole-filling (1D)

source target

Page 16: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

It is impossible to faithfully preserve the gradients

source target

Page 17: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradient Domain Blending (2D)

Trickier in 2D: • Take partial derivatives dx and dy (the gradient field) • Fiddle around with them (copy, blend, smooth, feather, etc) • Reintegrate

– But now integral(dx) might not equal integral(dy) • Find the most agreeable solution

– Equivalent to solving Poisson equation – Can be done using least-squares (\ in Matlab)

Page 18: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Example

Source: Evan Wallace

Gradient Visualization

Page 19: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Source: Evan Wallace

+

Specify object region

Page 20: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Poisson Blending Algorithm A good blend should preserve gradients of source

region without changing the background Treat pixels as variables to be solved

– Minimize squared difference between gradients of foreground region and gradients of target region

– Keep background pixels constant

Perez et al. 2003

Page 21: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Examples Gradient domain processing

20 20 20 20

20 80 20 20

20 20 80 20

20 20 20 20

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

10 10 10 10

10 10 10 10

10 10 10 10

10 10 10 10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

source image background image target image 10 10 10 10

10 v1 v3 10

10 v2 v4 10

10 10 10 10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Page 22: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradient-domain editing

Creation of image = least squares problem in terms of: 1) pixel intensities; 2) differences of pixel intensities

Least Squares Line Fit in 2 Dimensions

( )( )2

2

minargˆ

minargˆ

bAvv

vav

v

v

−=

−= ∑i

iTi b

Use Matlab least-squares solvers for numerically stable solution with sparse A

Page 23: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Perez et al., 2003

Page 24: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

source target mask

no blending gradient domain blending

Slide by Mr. Hays

Page 25: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

What’s the difference?

no blending gradient domain blending

- =

Slide by Mr. Hays

Page 26: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Perez et al, 2003

Limitations: • Can’t do contrast reversal (gray on black -> gray on white) • Colored backgrounds “bleed through” • Images need to be very well aligned

editing

Page 27: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Gradient Domain as Image Representation

See GradientShop paper as good example: http://www.gradientshop.com/

Page 28: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images

Page 29: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features

Page 30: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features

+100 pixel gradient

Page 31: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features

+100 pixel gradient

Page 32: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features

+100

+100

+100

+100

+100

+100 pixel gradient

+100

+100

+100

+100

+100

+100 pixel gradient

Page 33: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features

+100

+100

+100

+100

+100

+100 pixel gradient

+100

+100

+100

+100

+100

+100 pixel gradient

image edge image edge

Page 34: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to

manipulate global image interpretation

+100

+100

+100

+100

+100

+100 pixel gradient

+100

+100

+100

+100

+100

+100 pixel gradient

Page 35: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to

manipulate global image interpretation

+255

+255

+255

+255

+255

pixel gradient

Page 36: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to

manipulate global image interpretation

+255

+255

+255

+255

+255

pixel gradient

Page 37: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to

manipulate global image interpretation

+0

+0

+0

+0

+0

pixel gradient

Page 38: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to

manipulate global image interpretation

+0

+0

+0

+0

+0

pixel gradient

Page 39: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Can be used to exert high-level control over images

Page 40: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Optimization framework

Pravin Bhat et al

Page 41: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Optimization framework Input unfiltered image – u

Page 42: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Optimization framework Input unfiltered image – u Output filtered image – f

Page 43: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Optimization framework Input unfiltered image – u Output filtered image – f Specify desired pixel-differences – (gx, gy)

min (fx – gx)2 + (fy – gy)2

f

Energy function

Page 44: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Optimization framework Input unfiltered image – u Output filtered image – f Specify desired pixel-differences – (gx, gy) Specify desired pixel-values – d

min (fx – gx)2 + (fy – gy)2 + (f – d)2

f

Energy function

Page 45: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Optimization framework Input unfiltered image – u Output filtered image – f Specify desired pixel-differences – (gx, gy) Specify desired pixel-values – d Specify constraints weights – (wx, wy, wd)

min wx(fx – gx)2 + wy(fy – gy)2 + wd(f – d)2

f

Energy function

Page 46: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them
Page 47: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them
Page 48: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them
Page 49: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

input

Page 50: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

manual relight

Page 51: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

input

Page 52: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

GradientShop relight

Page 53: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

GradientShop relight

Page 54: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

GradientShop relight

Page 55: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting change scene illumination

in post-production example

GradientShop relight

Page 56: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting

u

f

o

Page 57: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

u

f

o

Page 58: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

Definition: d = u

u

f

o

Page 59: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

u

f

o Definition: d = u gx(p) = ux(p) * (1 + a(p)) a(p) = max(0, - u(p).o(p))

Page 60: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Pseudo image relighting

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

u

f

o Definition: d = u gx(p) = ux(p) * (1 + a(p)) a(p) = max(0, - u(p).o(p))

Page 61: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Sparse data interpolation Interpolate scattered data

over images/video

Page 62: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Sparse data interpolation Interpolate scattered data

over images/video Example app: Colorization*

input output *Levin et al. – SIGRAPH 2004

Page 63: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

u

f

user data

Sparse data interpolation

Page 64: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

u

f

user data

Sparse data interpolation

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

Page 65: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

u

f

user data

Sparse data interpolation

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

Definition: d = user_data

Page 66: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

u

f

user data

Sparse data interpolation

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

Definition: d = user_data if user_data(p) defined

wd(p) = 1 else wd(p) = 0

Page 67: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

u

f

user data

Sparse data interpolation

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

Definition: d = user_data if user_data(p) defined

wd(p) = 1 else wd(p) = 0

gx(p) = 0; gy(p) = 0

Page 68: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

u

f

user data

Sparse data interpolation

min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2

Energy function

Definition: d = user_data if user_data(p) defined

wd(p) = 1 else wd(p) = 0

gx(p) = 0; gy(p) = 0 wx(p) = 1/(1 + c*|ux(p)|)

wy(p) = 1/(1 + c*|uy(p)|)

Page 69: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Don’t blend, CUT!

So far we only tried to blend between two images. What about finding an optimal seam?

Moving objects become ghosts

Page 70: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Davis, 1998 Segment the mosaic

• Single source image per segment • Avoid artifacts along boundries

– Dijkstra’s algorithm

Page 71: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

min. error boundary

Minimal error boundary

overlapping blocks vertical boundary

_ = 2

overlap error

Page 72: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Seam Carving

http://www.youtube.com/watch?v=6NcIJXTlugc

Page 73: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Seam Carving

• Basic Idea: remove unimportant pixels from the image

– Unimportant = pixels with less “energy”

• Intuition for gradient-based energy: – Preserve strong contours – Human vision more sensitive to edges – so try remove content from

smoother areas – Simple, enough for producing some nice results – See their paper for more measures they have used

Michael Rubinstein — MIT CSAIL – [email protected]

Page 74: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Finding the Seam?

Michael Rubinstein — MIT CSAIL – [email protected]

Page 75: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

The Optimal Seam

)(minarg* sEsS

=||||)( III yxE∂∂+

∂∂=

Michael Rubinstein — MIT CSAIL – [email protected]

Page 76: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Dynamic Programming

• Invariant property: – M(i,j) = minimal cost of a seam going through (i,j) (satisfying the seam

properties)

5 8 12 3

9 2 3 9

7 3 4 2

4 5 7 8

Michael Rubinstein — MIT CSAIL – [email protected]

Page 77: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Dynamic Programming

5 8 12 3

9 2+5 3 9

7 3 4 2

4 5 7 8

( ))1,1(),,1(),1,1(min),(),( +−−−−+= jijijijiEji MMMM

Michael Rubinstein — MIT CSAIL – [email protected]

Page 78: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Dynamic Programming

5 8 12 3

9 7 3+3 9

7 3 4 2

4 5 7 8

( ))1,1(),,1(),1,1(min),(),( +−−−−+= jijijijiEji MMMM

Michael Rubinstein — MIT CSAIL – [email protected]

Page 79: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Dynamic Programming

5 8 12 3

9 7 6 12

14 9 10 8

14 14 15 8+8

( ))1,1(),,1(),1,1(min),(),( +−−−−+= jijijijiEji MMMM

Michael Rubinstein — MIT CSAIL – [email protected]

Page 80: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Searching for Minimum

• Backtrack (can store choices along the path, but do not have to)

5 8 12 3

9 7 6 12

14 9 10 8

14 14 15 16

Michael Rubinstein — MIT CSAIL – [email protected]

Page 81: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Backtracking the Seam

5 8 12 3

9 7 6 12

14 9 10 8

14 14 15 16

Michael Rubinstein — MIT CSAIL – [email protected]

Page 82: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Backtracking the Seam

5 8 12 3

9 7 6 12

14 9 10 8

14 14 15 16

Michael Rubinstein — MIT CSAIL – [email protected]

Page 83: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Backtracking the Seam

5 8 12 3

9 7 6 12

14 9 10 8

14 14 15 16

Michael Rubinstein — MIT CSAIL – [email protected]

Page 84: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Graphcuts What if we want similar “cut-where-things-

agree” idea, but for closed regions? • Dynamic programming can’t handle loops

Page 85: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Graph cuts – a more general solution

n-links

s

t a cut hard constraint

hard constraint

Minimum cost cut can be computed in polynomial time (max-flow/min-cut algorithms)

Page 86: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

e.g. Lazy Snapping

Interactive segmentation using graphcuts Also see the original Boykov&Jolly, ICCV’01, “GrabCut”, etc, etc ,etc.

Page 87: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

Putting it all together Compositing images

• Have a clever blending function – Feathering – blend different frequencies differently – Gradient based blending

• Choose the right pixels from each image – Dynamic programming – optimal seams – Graph-cuts

Now, let’s put it all together:

• Interactive Digital Photomontage, 2004 (video)

Page 88: Image Blending and Compositingcs194-26/fa15/Lectures/...Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) Composite by David Dewey 2. Blend them

http://www.youtube.com/watch?v=kzV-5135bGA