Homework 1: High Dynamic Range Imaging

Chen-Han Ho
chen-han@cs.wisc.edu

Taking Images

I used Nikon D5100 to take multiple pictures of some candy boxes. I tried to use as many colors as possible to make the scene.

Curve

I used Debevec's approach[1] to generate the Radiance map and the response curve of D5100. The curve and a sample original image I used are:






Implementation
The project is done in C++ and Linux. For image I/O I use Cimg library.
For performing SVD and solving the linear system, I used the Gnu Scientific Library, GSL.
For HDR I/O, I use Cornell Graphics.
The input parameters as shutter speed and input images is hardcoded. The pixels are selected in random. I tried to implement the fast bilateral filtering but I experiences some issues in memory management. Although it is not verified, the valgrind reported that the problem comes from CImg library. I think I would change to a different I/O library next time. The tone_mapping code are commented out in the submission.


How To Run
cd src
make clean
make
./r_curv # get curves
./hdr # get hdr image (out.hdr)

Tone Mapping

For tone mapping the output HDR image, I use Reinhard's HDRShop plugin and Photoshop's Local Adaptation. I modified the tone mapping curve in the Photoshop to make the result looks more different than the HDR shop version. Images are as follows:
Result using HDR shop



Result using photoshop