- 95 Views
- Uploaded on
- Presentation posted in: General

Diffusion Curves

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Diffusion Curves

Dr. Scott Schaefer

- Vector graphics-based representation for 2D images
- Images are piecewise smooth with discontinuities represented as curves

Image taken from “Diffusion Curves: A Vector Representation for Smooth-Shaded Images”

- Bezier curves represent discontinuities
- Give each curve a color function on left/right side of curve
- Original paper uses linear color change
- Modification: Control points can have any color

Image taken from “Diffusion Curves: A Vector Representation for Smooth-Shaded Images”

Use curves as boundary constraints

Find a harmonic function that interpolates those boundary constraints

Image taken from “Diffusion Curves: A Vector Representation for Smooth-Shaded Images”

Define a left/right color for points

Use a background color to represent no data (black)

Draw curve as a polygon made of quads (thick) with smooth shading

- Colored pixels are constraints
- Find a harmonic function satisfying constraints
- Harmonic function has Laplacian zero everywhere

1

0

0

-4

1

1

0

0

- Colored pixels are constraints
- Find a harmonic function satisfying constraints
- Harmonic function has Laplacian zero everywhere

1

1

0

0

-4

1

1

0

0

- Colored pixels are constraints
- Find a harmonic function satisfying constraints
- Harmonic function has Laplacian zero everywhere
- Each value is average of its neighbors

1

- Draw curves as quads
- Read pixel buffer back from OpenGL
- Repeat a lot
- For all pixels whose initial value was black, replace with average color of its neighbors from previous iteration

Final Result

100 Iterations

200 Iterations

400 Iterations

800 Iterations

1600 Iterations

6400 Iterations

Infinity Iterations

256

- Create power of 2 down-sampled images
- Average value of all non-black pixels

- For each level, starting at second to last
- Up-sample previous level
- Copy pixel value to black high-res pixels (non-black pixels are constraints)

- For some number of iterations
- For each non-constrained pixel, replace with color of its neighbors from previous iteration

- Up-sample previous level

Original 512x512

Down-sampled 256x256

Down-sampled 128x128

Down-sampled 64x64

Down-sampled 32x32

Down-sampled 16x16

Down-sampled 8x8

Down-sampled 4x4

Down-sampled 2x2

Down-sampled 1x1

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed

Up-sampled

Smoothed