110 likes | 234 Views
Recovering HDR radiance maps for Project 5. James Hays CS 129 Fall 2012. Debevec and Malik 1997. Image series. • 1. • 1. • 1. • 1. • 1. • 2. • 2. • 2. • 2. • 2. • 3. • 3. • 3. • 3. • 3. D t = 1/64 sec. D t = 1/16 sec. D t = 1/4 sec. D t = 1 sec. D t = 4 sec.
E N D
Recovering HDR radiance mapsfor Project 5 James Hays CS 129 Fall 2012
Debevec and Malik 1997 Image series • 1 • 1 • 1 • 1 • 1 • 2 • 2 • 2 • 2 • 2 • 3 • 3 • 3 • 3 • 3 Dt =1/64 sec Dt =1/16 sec Dt =1/4 sec Dt =1 sec Dt =4 sec Pixel Value Z = f(Exposure) Pixel Value Z =f(Radiance *Dt) f -1(Pixel Value Z) =Radiance *Dt g(Pixel Value Z) =ln(Radiance) + ln(Dt)
Image Sequence • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec • For each pixel site i in each image j, want: • g()is the unknowndiscrete inverse response function. • Zij is the known (but noisy) pixel value from 0 to 255 for location i in image j. • Ei is the unknown radiance at location i. • Δtj is the known exposure time, e.g. 1/16, 1/125, etc. for image j Equation 2 in Debevec
Image Sequence • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec Example of what g(Zij) looks like 256 unknowns
Image Sequence • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec Example of what g(Zij) looks like 256 unknowns
Image Sequence • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec Example of what g(Zij) looks like 256 unknowns We expect g() to vary smoothly
Image Sequence • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec Add constraints on second derivative of g() Example of what g(Zij) looks like 256 unknowns We expect g() to vary smoothly
Image Sequence • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec num_samples *num_imagesequations Example form of g(Zij) 256 unknowns 254 equations … We expect g() to vary smoothly Lock down one point in g()
Image Sequence We can’t trust all of these values • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec num_samples *num_imagesequations Weight each equation by trustworthiness 254 equations … Lock down one point in g()
Image Sequence We can’t trust all of these values • 1 • 1 • 1 • 2 • 2 • 2 • 3 • 3 • 3 Dtj = 1/64sec Dtj = 1/16sec Dtj = 1/4sec Weight each equation by trustworthiness …
How do we convert this to Ax=b form for Matlab? A x = b 256 num_samples * num_images equations num_samples * num_images non-zero entries num_samples 1 … 254 254 equations 1 256 + num_samples 1 x = A\b 1 equation