IDS peak ICV v1.5.0
Loading...
Searching...
No Matches
HDR Class Reference

#include <peak_icv/algorithms/hdr/peak_icv_hdr.hpp>

Inheritance diagram for HDR:

Public Member Functions

 HDR ()
 Constructs an HDR processing object.
 
 ~HDR () override
 
HDRAlgorithm GetAlgorithm () const
 Returns the HDR algorithm used by this object.
 
void EstimateResponseCurve (const std::vector< Image > &images) const
 Estimates the Camera Response Curve (CRC) from a set of input images.
 
Image Process (const std::vector< Image > &images) const
 Generates an HDR image from the specified input images.
 
ResponseCurve GetResponseCurve () const
 
void SetResponseCurve (const ResponseCurve &responseCurve)
 

Detailed Description

Performs High Dynamic Range (HDR) image reconstruction.

This class provides functionality to generate a High Dynamic Range (HDR) image from a set of input images captured with different exposure settings. The input images are expected to depict the same scene while varying exactly one parameter: either the exposure time OR the gain.

Internally, the HDR reconstruction is performed using the Debevec algorithm. A key part of this process is determining the Camera Response Curve (CRC), which maps digital pixel values to relative radiance.

Typical usage

Note
All input images must have the same resolution, the same pixel format and being captured from an identical viewpoint of the same scene without any change in camera position or scene content. Any mismatch may lead to invalid HDR reconstruction results.

Limitations

  • All input images must be compatible (same resolution, pixel format, and scene)
  • At least tow input images must be provided
  • Only the Debevec HDR algorithm is currently supported
Since
ids_peak_icv 1.2

Constructor & Destructor Documentation

◆ HDR()

HDR ( )
inlineexplicit

Constructs an HDR processing object.

Creates and initializes an HDR object using the default HDR reconstruction algorithm (Debevec).

Since
ids_peak_icv 1.2

◆ ~HDR()

~HDR ( )
inlineoverride

Member Function Documentation

◆ EstimateResponseCurve()

void EstimateResponseCurve ( const std::vector< Image > & images) const
inline

Estimates the Camera Response Curve (CRC) from a set of input images.

This method calculates the response characteristics of the camera sensor. The CRC defines the relationship between scene radiance and the measured pixel values.

All input images must meet the following conditions:

Performing this estimation step explicitly can significantly reduce the processing time of subsequent calls to Process(), as the curve does not need to be re-calculated.

If this method is not called, the response curve is estimated automatically during the first call to Process().

Supported pixel formats
  • Mono8
  • RGB8

See the Pixel and Pixel Format Specifications for a detailed description of the pixel formats.

Parameters
[in]imagesImages of the same scene with different exposure time or gain metadata. Must not be empty.
Since
ids_peak_icv 1.3

◆ GetAlgorithm()

HDRAlgorithm GetAlgorithm ( ) const
inline

Returns the HDR algorithm used by this object.

The algorithm is defined at construction time and determines how the input images are combined during HDR reconstruction.

Returns
The HDR algorithm identifier.
Since
ids_peak_icv 1.2

◆ GetResponseCurve()

ResponseCurve GetResponseCurve ( ) const
inline
Exceptions
NotPossibleExceptionNo response curve is currently set. Use HDR::SetResponseCurve() or HDR::EstimateResponseCurve() to set a response curve first.
Since
ids_peak_icv 1.4

◆ Process()

Image Process ( const std::vector< Image > & images) const
inline

Generates an HDR image from the specified input images.

Processes the provided images and combines them into a single HDR image.

If a pixel is under- or overexposed across all input images this pixel is clamped to the HDR image's global minimum or maximum values, respectively. All clamped pixels are excluded from the image region.

All input images must meet the following conditions:

If the camera response curve has not been explicitly estimated using EstimateResponseCurve, an internal estimation step is performed automatically when it is first called. This may increase the overall processing time for the first call.

Supported pixel formats
  • Mono8
  • RGB8

See the Pixel and Pixel Format Specifications for a detailed description of the pixel formats.

Parameters
[in]imagesImages of the same scene with different exposure time or gain metadata. Must not be empty.
Returns
The resulting HDR image with pixel format Mono32f resp. RGB32f.
Since
ids_peak_icv 1.2

◆ SetResponseCurve()

void SetResponseCurve ( const ResponseCurve & responseCurve)
inline
Since
ids_peak_icv 1.4