computational aspects of digital photographywjarosz/courses/cs89-fa15/slides/02 image... · image...

52
Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz [email protected] COMPUTATIONAL PHOTOGRAPHY CS 89.15/189.5, Fall 2015

Upload: phamxuyen

Post on 25-Aug-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Image Processing Basics

COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY

Wojciech Jarosz [email protected]

COMPUTATIONALPHOTOGRAPHY

CS 89.15/189.5, Fall 2015

Page 2: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Domain, range

Page 3: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Domain vs. range2D plane: domain of images color value: range (R3 for us) - red, green and blue components stored in

im(x, y, 0), im(x, y, 1), im(x, y, 2), respectively

CS 89/189: Computational Photography, Fall 2015 3After a slide by Frédo Durand

Page 4: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

CS 89/189: Computational Photography, Fall 2015

Basic types of operations

4

Point operations: range only

Assignment 2

After a slide by Frédo Durand

output(x,y) = f(image(x,y))

image(x,y)

output(x,y)

Page 5: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

CS 89/189: Computational Photography, Fall 2015

Basic types of operations

5

Point operations: range only

Assignment 2

After a slide by Frédo Durand

Domain operations

Assignment 6

image(x,y)

output(x,y)

output(x,y) = image(f(x,y))

output(x,y) = f(image(x,y))

Page 6: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

CS 89/189: Computational Photography, Fall 2015

Basic types of operations

6

Point operations: range only

Assignment 2

After a slide by Frédo Durand

Domain operations

Assignment 6

Neighborhood operations: domain and range

Assignments 3, 4, 5

image(x,y)

output(x,y)

output(x,y) = image(f(x,y))

output(x,y) = f(image(x,y))

Page 7: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Light & perception

Page 8: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Light from sources is reflected by objects and reaches the eye The amount of light from the source gets multiplied by the object reflectance - on a per-wavelength basis

Light matter, eyes

CS 89/189: Computational Photography, Fall 2015 8After a slide by Frédo Durand

Page 9: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Human perception Our eyes have an uncanny ability to discount the illumination - Only objects really matter for survival

- Light is only useful to understand if you’re a photographer or to choose your sun lotion

CS 89/189: Computational Photography, Fall 2015 9After a slide by Frédo Durand

Page 10: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Illusion by AdelsonA & B have exactly the same tone

CS 89/189: Computational Photography, Fall 2015 10After a slide by Frédo Durand

Page 11: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Illusion by AdelsonA & B have exactly the same tone

CS 89/189: Computational Photography, Fall 2015 11After a slide by Frédo Durand

Page 12: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Mechanism to discount lightLight adaptation - We re-center our neural response around the current average

brightness

- neural + chemical + pupil

Chromatic adaptation - eliminate color cast due to light sources

e.g. Daylight is white but tungsten is yellowish

- Related to white balance - more soon

- and Spanish Castle illusionCS 89/189: Computational Photography, Fall 2015 12After a slide by Frédo Durand

Page 13: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Contrast is about ratiosContrast between 1 & 2 is the same as between 100 & 200 Useful to discount the multiplicative effect of light

CS 89/189: Computational Photography, Fall 2015 13

0.1 to 0.2 0.4 to 0.8

After a slide by Frédo Durand

Page 14: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

ExposureOn cameras, exposure (shutter speed, aperture, ISO) has a multiplicative effect on the values recorded by the sensor. Changes the “brightness”, not contrast

CS 89/189: Computational Photography, Fall 2015 14

http://photographystepbystep.com/exposure-2/auto-bracketing/

After a slide by Frédo Durand

Page 15: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

White balance

Page 16: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

White balance & Chromatic adaptationDifferent illuminants have different color temperature Our eyes adapt: chromatic adaptation - We actually adapt better in brighter scenes

- This is why candlelit scenes still look yellow

CS 89/189: Computational Photography, Fall 2015 16

www.shortcourses.com/guide/guide2-27.html

After a slide by Frédo Durand

Page 17: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

White balance problemWhen watching a picture on screen or print, we adapt to the illuminant of the room, not that of the scene in the picture The eye cares more about objects’ intrinsic color, not the color of the light leaving the objects We need to discount the color of the light source

CS 89/189: Computational Photography, Fall 2015 17

Same object, different illuminants

After a slide by Frédo Durand

Page 18: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

White balance & FilmDifferent types of film for fluorescent, tungsten, daylight Need to change film!

Electronic & Digital imaging are more flexible

CS 89/189: Computational Photography, Fall 2015 18After a slide by Frédo Durand

Page 19: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Von Kries adaptationMultiply each channel by a gain factor - R’=R*kr

- G’=G*kg

- B’=B*kb

CS 89/189: Computational Photography, Fall 2015 19

http://www.cambridgeincolour.com/tutorials/white-balance.htm

After a slide by Frédo Durand

Page 20: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Von Kries adaptationMultiply each channel by a gain factor Note that the light source could have a more complex effect - Arbitrary 3⨉3 matrix

- More complex spectrum transformation

CS 89/189: Computational Photography, Fall 2015 20

http://www.cambridgeincolour.com/tutorials/white-balance.htm

After a slide by Frédo Durand

Page 21: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

White balance challengeHow do we find the scaling factors for r, g, and b?

CS 89/189: Computational Photography, Fall 2015 21After a slide by Frédo Durand

Page 22: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Best way to do white balanceGrey card: Take a picture of a neutral object (white or gray) Deduce the weight of each channel If the object is recoded as rw, gw, bw use weights k/rw, k/gw, k/bw where k controls the exposure

CS 89/189: Computational Photography, Fall 2015 22After a slide by Frédo Durand

Page 23: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Lightroom demoMost photo editing software lets you click on a neutral object to achieve white balance - In “Levels” in Photoshop

- In “Basic” in Lightroom

- You also often have presets such as daylight, tungsten

CS 89/189: Computational Photography, Fall 2015 23After a slide by Frédo Durand

Page 24: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Party name tagsProvide excellent white references!

CS 89/189: Computational Photography, Fall 2015 24

write(im/im(300, 214))

After a slide by Frédo Durand

Page 25: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Without grey cardsWe need to “guess” which pixels correspond to white objects

CS 89/189: Computational Photography, Fall 2015 25After a slide by Frédo Durand

Page 26: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Grey world assumptionAssume average color in the image is grey Use weights proportional to

Usually assumes 18% grey to set exposure

CS 89/189: Computational Photography, Fall 2015 26After a slide by Frédo Durand

Page 27: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Brightest pixel assumptionHighlights usually have the color of the light source - At least for dielectric materials

White balance by using the brightest pixels - Plus potentially a bunch of heuristics

- In particular use a pixel that is not saturated/clipped

CS 89/189: Computational Photography, Fall 2015 27After a slide by Frédo Durand

Page 28: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

RefsRecent work on color constancy - http://gvi.seas.harvard.edu/paper/perceptionbased-color-

space-illuminationinvariant-image-processing

- http://gvi.seas.harvard.edu/paper/color-subspaces-photometric-invariants

- http://people.csail.mit.edu/billf/papers/BayesJOSA.pdf

Still an open problem!

CS 89/189: Computational Photography, Fall 2015 28After a slide by Frédo Durand

Page 29: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

CS 89/189: Computational Photography, Fall 2015

Questions?

29

from xkcd

After a slide by Frédo Durand

Page 30: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Take home messagesDiscounting the illumination is useful Ratios matter Optical illusions are not optical but fun

CS 89/189: Computational Photography, Fall 2015 30After a slide by Frédo Durand

Page 31: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Gamma

Page 32: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Images are usually gamma encoded

Instead of storing the light intensity x, they store x𝛾

to get more precision in dark areas for 8-bit encoding

Linearity and gamma

CS 89/189: Computational Photography, Fall 2015 32After a slide by Frédo Durand

gamma compression curve

real value

stor

ed v

alue

Page 33: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Linearity and gammaImages are usually gamma encoded

Instead of storing the light intensity x, they store x𝛾

to get more precision in dark areas for 8-bit encoding

CS 89/189: Computational Photography, Fall 2015 33

6 bit encoding for emphasis:

After a slide by Frédo Durand

Page 34: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Gamma demohttp://web.mit.edu/lilis/www/gammavis.html

CS 89/189: Computational Photography, Fall 2015 34After a slide by Frédo Durand

Page 35: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Linearity and gammaImages are usually gamma encoded

Instead of storing the light intensity x, they store x𝛾 Half of image processing algorithms work better in linear space - If linearity is important

- To deal with ratios and multiplicative factors better

Half work better in gamma space - closer to logarithmic scale

CS 89/189: Computational Photography, Fall 2015 35After a slide by Frédo Durand

Page 36: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

How to capture linear imageshttp://www.mit.edu/~kimo/blog/linear.html

CS 89/189: Computational Photography, Fall 2015 36After a slide by Frédo Durand

Page 37: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Take home messageImages are usually gamma-encoded gamma ~2.2 provides better quantization sometimes good for algorithms sometimes bad - convert to linear values!

CS 89/189: Computational Photography, Fall 2015 37After a slide by Frédo Durand

Page 38: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histograms

Page 39: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

HistogramHistogram: - For each value (e.g. 0-255), how many pixels have

this value?

Cumulative histogram: - for each value x, how many pixels have a value

smaller than x?

Normalized: divide value of each bin by total number of pixels - histogram = discrete PDF

- cumulative histogram = discrete CDF

CS 89/189: Computational Photography, Fall 2015 39

(wikipedia)

After a slide by Frédo Durand

pixel value

#pix

els

Page 40: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Very useful on cameraAllows you to tell if you use the dynamic range entirely

CS 89/189: Computational Photography, Fall 2015 40After a slide by Frédo Durand

Page 41: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Bad: bright values under-used(underexposure)

Bad: bright values saturate(overexposure)

http://www.luminous-landscape.com/tutorials/understanding-series/understanding-histograms.shtml

Page 42: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histogram equalization

Page 43: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histogram equalizationGiven an image with a certain histogram, monotonic remapping to get a flat histogram

CS 89/189: Computational Photography, Fall 2015 43

pixel value

#pix

els

pixel value

#pix

elsold pixel value

new

pix

el v

alue

http://en.wikipedia.org/wiki/Histogram_equalization

Page 44: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histogram equalizationIdeal flat histogram: y% of pixels have a value less than y% - assuming everything is normalized to [0,1]

Flip it: a pixel with value larger than y% of all pixels should have value y% For an old value x%, we know the number of pixels that have value < x%: cumulative histogram (also called CDF) Therefore, we want x to be mapped to its cumulative histogram value.

CS 89/189: Computational Photography, Fall 2015 44

Page 45: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histogram matchingHistogram matching - Given a desired histogram

- Map each value of an image channel to a new value, such that the new histogram matches the desired histogram

Histogram equalization - The desired histogram is simply constant

- What shape is the cumulative histogram?

CS 89/189: Computational Photography, Fall 2015 45

Page 46: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

target

Histogram matching

CS 89/189: Computational Photography, Fall 2015 46

% o

f pix

els

intensity bin0 255

100

G1

Histogram matching is done by adjusting the cumulative distribution function (cdf) - Cumulative histogram of input

input

Page 47: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histogram matching is done by adjusting the cumulative distribution function (cdf) - Cumulative histogram of input

- Followed by inverse cumulative histogram of target

Histogram matching

CS 89/189: Computational Photography, Fall 2015 47

% o

f pix

els

intensity bin0 255

100

G1

target

G2

target

input

Page 48: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Histogram matching is done by adjusting the cumulative distribution function (cdf) - Cumulative histogram of input

- Followed by inverse cumulative histogram of target (linear)

Histogram equalization

CS 89/189: Computational Photography, Fall 2015 48

% o

f pix

els

intensity bin0 255

100

G1

target

G2

input

Page 49: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Cumulative distribution function (CDF)

CS 89/189: Computational Photography, Fall 2015

Histogram equalization

49Input Equalized

Page 50: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Debugging

Page 51: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

DebuggingDoubt everything Debug pieces in isolation - Binary search/divide and conquer

Display/print everything - In particular intermediate results

Create simple inputs - where you can easily manually compute

the result

- e.g. constant image, edge image, etc.

- use small images (e.g. 3x3)

- including (especially) inputs to intermediate stages

- use input thats isolate different failure modes

Change one thing at a time - e.g. to verify that a given

command has the effect you want, modify it to break it

CS 89/189: Computational Photography, Fall 2015 51

Page 52: COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHYwjarosz/courses/cs89-fa15/slides/02 Image... · Image Processing Basics COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu

Slide creditsFrédo Durand

CS 89/189: Computational Photography, Fall 2015 52