A tool to construct HDR-images from a series of exposures.
Johannes Hofmann d0ad86b397 Expand README.md 7 lat temu
cli Restructure repository 7 lat temu
gui_gtk Toggle between logarithmic mapping and exposure 7 lat temu
include Add option to create HdrImageStack from CSV file 7 lat temu
src Add option to create HdrImageStack from CSV file 7 lat temu
.gitignore Restructure repository 7 lat temu
README.md Expand README.md 7 lat temu

README.md

haader

A tool to construct HDR-images from a series of photographs of the same scene with different exposures. It reads JPEG-files and parses the EXIF data to retrieve their exposure times. The sensor response function is estimated using a method which is similar to the one described by Debevec and Malik in 1997.

(Paul E. Debevec and Jitendra Malik. "Recovering High Dynamic Range Radiance Maps from Photographs". In Proceedings of SIGGRAPH 97, Computer Graphics Proceedings, Annual Conference Series, pages 369–378, 1997.)

There are two interfaces available.

Command Line Interface

To build the CLI, you will just need a C++ compiler as all dependencies are included:

# apt-get install build-essential

Build:

$ cd cli
$ make

Run:

$ cd cli
$ ./haader <image1.jpg> <image2.jpg> <image3.jpg> ...

This will output several files if the reconstruction of the sensor response function was successful:

  • expose_*.ppm: Simulated exposures of the scene with different exposure times
  • log_image.ppm: A logarithmic mapping of the HDR-image
  • rf.csv: The sensor response function as a simple table with two columns. The first column contains the logarithmic luminance relative to the central response (128). The second row contains the response value (0-255).
  • irf.csv: The inverse sensor response function as a simple table with two columns.

GTK Interface

Needs GTK+3.0 and the corresponding development packages:

# apt-get install build-essential libgtk-3-0 libgtk-3-dev

Build and run:

$ cd gui_gtk
$ make run

Click Select files to open multiple images of the same scene and start the reconstruction. Alternatively, it is possible to specify the images and exposure times with a simple two-column CSV file:

</absolute/image/path1.png>,<exposure time in seconds>
</absolute/image/path2.png>,<exposure time in seconds>
...