Name: Chen Xu
login: chenx
This project mainly has two parts: recovering high dynamic range radiance map and tone mapping:
1. To recover high dynamic range radiance map, we need a tile of images for the same objects or scene but under different illumination conditions or different camera exposure time. The idea is pixel value is a function of unknown scene radiance and know exposure duration: Zij = f(Ei Δ tj ). We want to find the radiance E at every pixel i. For this purpose, we need to know pixel values Zi under multiple exposure times, and solve a least square problem.
2. Once we get the recovered radiance map, we need to map that radiance map to the range [0, 1] so that it can be displayed. To do that, we decompose the radiance map into two layers, the detail layer and the base layer, using bilateral filtering. We do some kinds of linear mapping for the base layer and finally reconstruct the image using the detail layer and the mapped based layer. We can also do gamma correction at the end if it's needed. This method can not only keep the details of the image, but also avoid the halo artifacts.
Table 1 shows the g curve and the visualization of radiance map. For the tone mapping part, tuning dR for each test case is a very important thing, and sometimes I feel in this equation O = dR * 2^(B' + D), using dR or not in this equation also makes difference. Through out the project, the Gaussian kernel size of bilateral filtering is set like this: for f, the kernel size is 0.02 of the image size, and for g, the sigma value is 0.4.
I realize the blue g function curve of the chapel example goes to left a little bit at the top, I think this is caused by the blue borders in the original image tiles, those blue borders are introduced by image alignment. And this also causes the resulting tone mapping image a little bluer than it should be.
g curve | Radiance Map |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Table 2 shows bilateral filtering results
Radiance Map(Log scale) | Base | Detail |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Table 3 shows results of tone mapping as well as simple scale and linear compression
Tone Mapping(Durand) | Global Scale |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |