Contents
- Home
- Introduction
- Implementation
- Image Acquisition
- Simple Pixel Averaging
- Response Curves
- Tone Mapping (Matlab)
- Reinhard's Local Tone Mapping
- Reinhard's Global Tone Mapping
- Ward's Algorithm
- Results Comparison 1
- Results Comparison 2
- Results of Ward's Algo
- Datasets
- Code
- Git Logs
- References
|
Implementation
Our implementation consists of mainly four main parts.
The first part of our implementation (and probably the simplest) is our "naive pixel averaging" implementation. This involves taking an average of the pixel values over all images of the various exposures for a particular scene. We thought it would be an interesting experiment to compare the results for this simple averaging method to the results we retrieved using the standard HDR methods. Some examples of images that were created with this averaging method are shown in "Simple Pixel Averaging" section.
The second portion of our implementation consists of using Debevec and Maliks' methods to calculate the response functions (see here).
We experimented with various smoothness values (lamda) and found 50-100 to produce the best images. (Again this is subjective to the viewer!)
After the response functions and radiance maps were created the RGB image was converted into HDR format and a *.hdr file for created.
We also experimented with creating false color maps from the radiance maps.
The third portion of our implementation consists of using a variety of tone mapping methods to produce HDR images.
We produced images using 3 types of tonemap methods (2 of which we implemented):
(1) Builtin Matlab tonemap function (See results here),
(2) Reinhard et al.'s local tone mapping algorithm (See results here)
(3) Reinhard et al.'s global tone mapping algorithm (See results here)
Results on implementing the above on Dataset 1 can be found here.
Results on implementing the above on Dataset 2 can be found here.
More results can be found here.
The resulting images varied a lot based on which tone mapping algorithm we used. (see comparison 1 and comparison 2)
Additionally, the results for the different tone mapping algorithms certainly depended on the scene.
We experimented with various parameter values (such as saturation, brightness along with smoothness factor) for our different image scenes and found that varing those would greatly enhance the image appearance but at times at the expense of giving a realistic looking image.
The results of our experiments are here
The fourth main portion of our implementation was building Ward's image alignment algorithm (see here).
We improved upon Ward's standard image alignment algorithm by putting the images through an edge filter before calculating their x y shifts. After we retrieved the x y shifts from running the algorithm, we shifted the relevant images and cropped out portions for all of the images based on the minimum and maximum x and y shifts. We cropped out parts of each image in order to keep the number of pixels constant throughout all of the images for a particular scene, and to attempt to only keep the pixels/image portions which were constant throughout all images of a particular scene. The algorithm worked much better when given a smaller parameter value for the maximum number of bits to shift, and also a smaller value for the tolerance parameter (i.e. measuring noise near the median pixel value). It also worked much better when putting the images through an edge filter before running the image alignment algorithm.
See results of applying Ward's Algo.
|