High Dynamic Range Images

Jan Gaura


Today’s exercise is focused on implementation of high dynamic range (HDR) images.

We need a sequence of images:

\[ I_1 \dots I_n \, , \] where \(n\) is number of images.

Sequence of five images in differenc exposure.

For each pixel at coordinate \((i, j)\) and image \(k\), we compute a weight:

\[ w_k(i, j) = \exp\Bigg(- \frac{(I_k(i, j) - 255 \mu)^2}{2 (255 \sigma)^2} \Bigg) \, , \] where \(\mu = 0.5\), and \(\sigma = 0.2\) (you can elaborate on these constants). Weights have to be normalized to the sum of values for every pixel (sum of \(w_k = 1\)).

The final radiance in each pixel can be computed as a sum of weighted pixel colors over set of images:

\[ R(i, j) = \sum_{k=1}^n w_k(i, j) I_k(i, j) \, . \]

Images can be processed in grayscale

Grayscale HDR output. Grayscale HDR output.

or in all three color channels.

Color HDR output. Color HDR output.