HDR Image Tools 0.5.0
Primary author: Edgar Velázquez-Armendáriz - eva5 at cs~cornell~edu
This package provides a set of simple tools to manipulate HDR images in the Radiance (.pic;.rgbe;.hdr), OpenEXR (.exr) and Portable Float Map (.pfm) formats. They include a viewer, a batch tonemapper, and OpenEXR bindings for Java (using JNI) and Matlab (using MEX files.)
The projects use the meta-build system CMake to create the actual build
files. To generate the build files using
cmake one can just execute,
from the directory where the build files will be created:
$ cmake -G "Generator Name" PATH_TO_MODULE
Generator Name is the name of the desired generator as shown by
cmake without arguments.
PATH_TO_MODULE is the path (relative
or absolute) to the directory where the
CMakeLists.txt file at the top of
the module is located. More details about how to invoke cmake may be consulted
on its online documentation. An easier way might be to use either the ncurses
ccmake or the Qt based one,
The HDRITools package provides the following:
OpenEXR-JNI - The Java JNI bindings for OpenEXR.
OpenEXR-Matlab - Matlab MEX extensions to read and save OpenEXR files.
ImageIO - Parallel C++ library to manipulate HDR files in the Radiance, OpenEXR and Portable Float Map files. It is (allegedly) tuned for speed, using templates and SSE/SSE2/SSE3/AVX intrinsics. It can also write PNGs of integral-type pixels at 8 and 16 bits per pixel.
batchToneMapper - a parallel command line utility to tone map HDR files using exposure and gamma correction. It can also read the HDR files contained in a zip file directly. It is based on ImageIO.
qt4Image - HDR file viewer to tone map, zoom and compare files, using amenities such as drag-and-drop. This is meant to be a modern replacement of the venerable
glimagecreated by Mahesh Ramasubramanian back in 1998.
Required external components
- CMake >=2.8.12 - to create the build files.
- Threading Building Blocks >= 2.2 - used for the parallelization.
- Qt >= 4.4 - for batchToneMapper and qt4Image.
- JUnit >= 4 - used for the optional Java unit tests.
The options are documented in CMake, use the GUI or ncurses version to see their description. However the defaults should be decent enough.
When compiling against a static Qt4 in windows, if you receive the error:
error LNK2001: unresolved external symbol IID_ID3DXEffectStateManager
Then you might need to link manually
qt4Image to a
DirectX library contained in the SKD:
%DXSDK_DIR%\Lib\x64\dxguid.lib(for Win64 or)
DXSDK_DIR is the environment variable with the path to the
Fabio Pellacini wrote the original
The zip file reading functionality is based on MiniZip.
The OpenEXR_Matlab module is originally based on work by
Experiments badge icon by David Lanham.
The HDRITools package uses and includes free software:
- The zlib compression library (Jean-loup Gailly, Mark Adler and team)
- The MiniZip compression library (Gilles Vollant and team)
- The libpng graphics library (Glenn Randers-Pehrson and team)
- The OpenEXR graphics library (Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd.)
- The TCLAP command line parser library (Michael E. Smoot and team)
- The Simple SSE math functions (Julien Pommier)
- The Approximate Math Library for SSE / SSE2 library (Intel Corporation)
- The SIMD oriented Fast Mersenne Twister random number library (Mutsuo Saito, Makoto Matsumoto and Hiroshima University)
- The Google Test C++ Testing Framework (Google Inc.)