CS766 Project 1 Report
Shijin Kong (krobin)
GOAL
This project aims to recover high dynamic range radiance maps from a series of photographs taken with different exposures. Debevec's algorithm is used to calculate response curve and further recover radiance map with it.
INSTRUCTIONS TO RUN PROGRAM
- Use gil library to read in a set of photos and read in configuration file, including the exposure for each photo.
- Pick certain number of pixels from a set of photos. Those pixels are ensured to have wide range of pixel values on the photo set as to make recovered response curve more accurate.
- Use CLAPACK library to perform Singular Value Decomposition (SVD) on a group of over-determined equations, find the least-square solution and then get the recovered response curve.
- Output the high dynamic range radiance maps (.hdr file) with recovered response curve.
>HDR.exe photo1 photo1_
The output results is stored as photo1/photo1_.hdr
PHOTO SETS
I took three photo sets, which are stored in directory photo1, photo2, photo3 respectively. Besides photos, each directory contains a filename called "shutter.txt". The first line of shutter.txt is the number of photos in this photo set, indicates how many photos will be used. The next few lines are exposure time for each photo. Let's look at photo1/shutter.txt as an example.
photo1/shutter.txt:
13 // <-- total 13 photos in photo1 directory
1.00000 // exposure of photo1_01.jpg is 1.0 second
0.80000 //
0.40000
0.20000
0.10000
0.05000 // ...
0.02500
0.01250
0.00625
0.00313
0.00156
0.00080
0.00040 // exposure of photo1_01.jpg is 0.0004 second
HDR RESULTS
The tone-mapped picture of photo1:
Response curve is like this:
IMPLEMENTATION DETAILS
FAVORITE ARTIFACT
It's the photo1_tonemapped.jpg I list above, or you can get it from here.