eVision Python API
Loading...
Searching...
No Matches
eVision.EHDRFusion Class Reference

Utility class containing two configurable algorithms to display HDR images on standard display monitors while conserving details and visual quality of the input image. More...

Public Member Functions

None __init__ (self, eVision.EMergerParameters mergerParams, eVision.EToneMapperParameters toneMapperParams)
 Creates a HDR fusion with the specified merger and tone-mapper.
None __init__ (self)
 Creates a HDR fusion with the specified merger and tone-mapper.
None __init__ (self, eVision.EHDRFusion other)
 Copy operator.
None Fuse (self, list[eVision._eVision.EImageC24] inputs, eVision.EImageC24 output, list[float] exposureTimes)
 If the merger type is not Mertens, the number of inputs image must match the number of exposure times.
None Fuse (self, list[eVision._eVision.EImageC24] inputs, eVision.EImageC24 output)
 If the merger type is not Mertens, the number of inputs image must match the number of exposure times.
None Fuse (self, list[eVision._eVision.EImageBW8] inputs, eVision.EImageBW8 output, list[float] exposureTimes)
 If the merger type is not Mertens, the number of inputs image must match the number of exposure times.
None Fuse (self, list[eVision._eVision.EImageBW8] inputs, eVision.EImageBW8 output)
 If the merger type is not Mertens, the number of inputs image must match the number of exposure times.
None Save (self, str path)
 Saves the eVision.EHDRFusion.
None Save (self, eVision.ESerializer|None serializer)
 Saves the eVision.EHDRFusion.
None Load (self, str path)
 Loads the eVision.EHDRFusion.
None Load (self, eVision.ESerializer|None serializer)
 Loads the eVision.EHDRFusion.

Properties

 ReinhardToneMapperParameters = property(_ReinhardToneMapperParameters__getter, _ReinhardToneMapperParameters__setter)
 Gets the parameter set for the current Reinhard tone-mapper.
 MantiukToneMapperParameters = property(_MantiukToneMapperParameters__getter, _MantiukToneMapperParameters__setter)
 Gets the parameter set for the current Mantiuk tone-mapper.
 DragoToneMapperParameters = property(_DragoToneMapperParameters__getter, _DragoToneMapperParameters__setter)
 Gets the parameter set for the current Drago tone-mapper.
 LinearToneMapperParameters = property(_LinearToneMapperParameters__getter, _LinearToneMapperParameters__setter)
 Gets the parameter set for the current linear tone-mapper.
 MertensMergerParameters = property(_MertensMergerParameters__getter, _MertensMergerParameters__setter)
 Gets the parameter set for the current Mertens merger.
 ToneMapperType = property(_ToneMapperType__getter, _ToneMapperType__setter)
 Gets the current tone-mapper type.
 MergerType = property(_MergerType__getter, _MergerType__setter)
 Gets the current merger type.

Detailed Description

Utility class containing two configurable algorithms to display HDR images on standard display monitors while conserving details and visual quality of the input image.

The fusion method takes multiple color images as input and the exposure times of each image. The fusion is performed in three steps:

  1. A calibration of the camera response is applied on the input images (if the merger is of type Debevec or Robertson.
  2. The merger computes an HDR image with the input images.
  3. The tone-mapper computes an image that can be displayed on standard display monitors.

Remarks:

License(s): EasyImage

Constructor & Destructor Documentation

◆ __init__() [1/3]

None eVision.EHDRFusion.__init__ ( self,
eVision.EMergerParameters mergerParams,
eVision.EToneMapperParameters toneMapperParams )

Creates a HDR fusion with the specified merger and tone-mapper.

Every merger are compatible with every tone-mapper.

Parameters
mergerParamsParameters and type of the merger to use.
toneMapperParamsParameters and type of the tone-mapper to use.

◆ __init__() [2/3]

None eVision.EHDRFusion.__init__ ( self)

Creates a HDR fusion with the specified merger and tone-mapper.

Every merger are compatible with every tone-mapper.

◆ __init__() [3/3]

None eVision.EHDRFusion.__init__ ( self,
eVision.EHDRFusion other )

Copy operator.

Parameters
otherAnother eVision.EHDRFusion.

Member Function Documentation

◆ Fuse() [1/4]

None eVision.EHDRFusion.Fuse ( self,
list[eVision._eVision.EImageBW8] inputs,
eVision.EImageBW8 output )

If the merger type is not Mertens, the number of inputs image must match the number of exposure times.

Otherwise, the number of exposure times must be null. The output image and all input images must have the same dimensions. When using the Debevec or Robertson algorithm, the response of the camera is computed by a preleminary calibration. This operation is expensive and if next calls are applied on the same number of images, with the same dimension and the same exposure times, it will not be computed again. Otherwise, the calibration is done again.

Parameters
inputsInput images.
outputOutput image.

◆ Fuse() [2/4]

None eVision.EHDRFusion.Fuse ( self,
list[eVision._eVision.EImageBW8] inputs,
eVision.EImageBW8 output,
list[float] exposureTimes )

If the merger type is not Mertens, the number of inputs image must match the number of exposure times.

Otherwise, the number of exposure times must be null. The output image and all input images must have the same dimensions. When using the Debevec or Robertson algorithm, the response of the camera is computed by a preleminary calibration. This operation is expensive and if next calls are applied on the same number of images, with the same dimension and the same exposure times, it will not be computed again. Otherwise, the calibration is done again.

Parameters
inputsInput images.
outputOutput image.
exposureTimesExposure times in seconds, can be empty if the merger type is Mertens.

◆ Fuse() [3/4]

None eVision.EHDRFusion.Fuse ( self,
list[eVision._eVision.EImageC24] inputs,
eVision.EImageC24 output )

If the merger type is not Mertens, the number of inputs image must match the number of exposure times.

Otherwise, the number of exposure times must be null. The output image and all input images must have the same dimensions. When using the Debevec or Robertson algorithm, the response of the camera is computed by a preleminary calibration. This operation is expensive and if next calls are applied on the same number of images, with the same dimension and the same exposure times, it will not be computed again. Otherwise, the calibration is done again.

Parameters
inputsInput images.
outputOutput image.

◆ Fuse() [4/4]

None eVision.EHDRFusion.Fuse ( self,
list[eVision._eVision.EImageC24] inputs,
eVision.EImageC24 output,
list[float] exposureTimes )

If the merger type is not Mertens, the number of inputs image must match the number of exposure times.

Otherwise, the number of exposure times must be null. The output image and all input images must have the same dimensions. When using the Debevec or Robertson algorithm, the response of the camera is computed by a preleminary calibration. This operation is expensive and if next calls are applied on the same number of images, with the same dimension and the same exposure times, it will not be computed again. Otherwise, the calibration is done again.

Parameters
inputsInput images.
outputOutput image.
exposureTimesExposure times in seconds, can be empty if the merger type is Mertens.

◆ Load() [1/2]

None eVision.EHDRFusion.Load ( self,
eVision.ESerializer | None serializer )

Loads the eVision.EHDRFusion.

The given eVision.ESerializer must have been created for reading.

Parameters
serializerThe serializer.

◆ Load() [2/2]

None eVision.EHDRFusion.Load ( self,
str path )

Loads the eVision.EHDRFusion.

The given eVision.ESerializer must have been created for reading.

Parameters
pathThe file path.

◆ Save() [1/2]

None eVision.EHDRFusion.Save ( self,
eVision.ESerializer | None serializer )

Saves the eVision.EHDRFusion.

The given eVision.ESerializer must have been created for writing.

Parameters
serializerThe serializer.

◆ Save() [2/2]

None eVision.EHDRFusion.Save ( self,
str path )

Saves the eVision.EHDRFusion.

The given eVision.ESerializer must have been created for writing.

Parameters
pathThe file path.

Property Documentation

◆ DragoToneMapperParameters

eVision.EHDRFusion.DragoToneMapperParameters = property(_DragoToneMapperParameters__getter, _DragoToneMapperParameters__setter)
static

Gets the parameter set for the current Drago tone-mapper.

Throws an exception if the current tone-mapper isn't a Drago tone-mapper.

◆ LinearToneMapperParameters

eVision.EHDRFusion.LinearToneMapperParameters = property(_LinearToneMapperParameters__getter, _LinearToneMapperParameters__setter)
static

Gets the parameter set for the current linear tone-mapper.

Throws an exception if the current tone-mapper isn't a linear tone-mapper.

◆ MantiukToneMapperParameters

eVision.EHDRFusion.MantiukToneMapperParameters = property(_MantiukToneMapperParameters__getter, _MantiukToneMapperParameters__setter)
static

Gets the parameter set for the current Mantiuk tone-mapper.

Throws an exception if the current tone-mapper isn't a Mantiuk tone-mapper.

◆ MergerType

eVision.EHDRFusion.MergerType = property(_MergerType__getter, _MergerType__setter)
static

Gets the current merger type.

◆ MertensMergerParameters

eVision.EHDRFusion.MertensMergerParameters = property(_MertensMergerParameters__getter, _MertensMergerParameters__setter)
static

Gets the parameter set for the current Mertens merger.

Throws an exception if the current tone-mapper isn't a Mertens Merger.

◆ ReinhardToneMapperParameters

eVision.EHDRFusion.ReinhardToneMapperParameters = property(_ReinhardToneMapperParameters__getter, _ReinhardToneMapperParameters__setter)
static

Gets the parameter set for the current Reinhard tone-mapper.

Throws an exception if the current tone-mapper isn't a reinhard tone-mapper.

◆ ToneMapperType

eVision.EHDRFusion.ToneMapperType = property(_ToneMapperType__getter, _ToneMapperType__setter)
static

Gets the current tone-mapper type.