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: More...
#include <eVision/EasyImage/EHDRFusion.h>
Public Member Functions | |
| EHDRFusion (const eVision::EMergerParameters &mergerParams, const eVision::EToneMapperParameters &toneMapperParams) | |
| Creates a HDR fusion with the specified merger and tone-mapper. Every merger are compatible with every tone-mapper. | |
| EHDRFusion () | |
| Creates a HDR fusion with the specified merger and tone-mapper. Every merger are compatible with every tone-mapper. | |
| EHDRFusion (const eVision::EHDRFusion &other) | |
| Copy operator. | |
| virtual | ~EHDRFusion () throw () |
| bool | operator== (const eVision::EHDRFusion &rhs) const |
| Checks if this EHDRFusion instance is strictly equal to another. | |
| eVision::EHDRFusion & | operator= (const eVision::EHDRFusion &other) |
| Assignment operator. | |
| void | SetReinhardToneMapperParameters (const eVision::EReinhardToneMapperParameters ¶ms) |
| Sets the parameter set for the current Reinhard tone-mapper. Throws an exception if the current tone-mapper isn't a reinhard tone-mapper. | |
| eVision::EReinhardToneMapperParameters | GetReinhardToneMapperParameters () const |
| Gets the parameter set for the current Reinhard tone-mapper. Throws an exception if the current tone-mapper isn't a reinhard tone-mapper. | |
| void | SetMantiukToneMapperParameters (const eVision::EMantiukToneMapperParameters ¶ms) |
| Sets the parameter set for the current Mantiuk tone-mapper. Throws an exception if the current tone-mapper isn't a Mantiuk tone-mapper. | |
| eVision::EMantiukToneMapperParameters | GetMantiukToneMapperParameters () const |
| Gets the parameter set for the current Mantiuk tone-mapper. Throws an exception if the current tone-mapper isn't a Mantiuk tone-mapper. | |
| void | SetDragoToneMapperParameters (const eVision::EDragoToneMapperParameters ¶ms) |
| Sets the parameter set for the current Drago tone-mapper. Throws an exception if the current tone-mapper isn't a Drago tone-mapper. | |
| eVision::EDragoToneMapperParameters | GetDragoToneMapperParameters () const |
| Gets the parameter set for the current Drago tone-mapper. Throws an exception if the current tone-mapper isn't a Drago tone-mapper. | |
| void | SetLinearToneMapperParameters (const eVision::ELinearToneMapperParameters ¶ms) |
| Sets the parameter set for the current linear tone-mapper. Throws an exception if the current tone-mapper isn't a linear tone-mapper. | |
| eVision::ELinearToneMapperParameters | GetLinearToneMapperParameters () const |
| Gets the parameter set for the current linear tone-mapper. Throws an exception if the current tone-mapper isn't a linear tone-mapper. | |
| void | SetMertensMergerParameters (const eVision::EMertensMergerParameters ¶ms) |
| Sets the parameter set for the current Mertens merger. Throws an exception if the current tone-mapper isn't a Mertens Merger. | |
| eVision::EMertensMergerParameters | GetMertensMergerParameters () const |
| Gets the parameter set for the current Mertens merger. Throws an exception if the current tone-mapper isn't a Mertens Merger. | |
| void | Fuse (const std::vector< eVision::EImageC24 > &inputs, eVision::EImageC24 &output, const std::vector< 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. | |
| void | Fuse (const std::vector< 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. | |
| void | Fuse (const std::vector< eVision::EImageBW8 > &inputs, eVision::EImageBW8 &output, const std::vector< 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. | |
| void | Fuse (const std::vector< 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. | |
| void | Save (const std::string &path) |
| Saves the EHDRFusion. The given ESerializer must have been created for writing. | |
| void | Save (eVision::ESerializer *serializer) |
| Saves the EHDRFusion. The given ESerializer must have been created for writing. | |
| void | Load (const std::string &path) |
| Loads the EHDRFusion. The given ESerializer must have been created for reading. | |
| void | Load (eVision::ESerializer *serializer) |
| Loads the EHDRFusion. The given ESerializer must have been created for reading. | |
| eVision::EToneMapperType | GetToneMapperType () const |
| Gets the current tone-mapper type. | |
| void | SetToneMapperType (eVision::EToneMapperType newToneMapperType) |
| Sets the current merger type. | |
| eVision::EMergerType | GetMergerType () const |
| Gets the current merger type. | |
| void | SetMergerType (eVision::EMergerType newMergerType) |
| Sets the current merger type. | |
| EHDRFusion (CppWrapperInternal::InternalConstructor) | |
Public Attributes | |
| CppWrapperInternal::WrappedClass | wrappedClass_ |
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:
License(s): EasyImage
| eVision::EHDRFusion::EHDRFusion | ( | const eVision::EMergerParameters & | mergerParams, |
| const eVision::EToneMapperParameters & | toneMapperParams ) |
Creates a HDR fusion with the specified merger and tone-mapper. Every merger are compatible with every tone-mapper.
| mergerParams | Parameters and type of the merger to use. |
| toneMapperParams | Parameters and type of the tone-mapper to use. |
| eVision::EHDRFusion::EHDRFusion | ( | ) |
Creates a HDR fusion with the specified merger and tone-mapper. Every merger are compatible with every tone-mapper.
| eVision::EHDRFusion::EHDRFusion | ( | const eVision::EHDRFusion & | other | ) |
Copy operator.
| other | Another EHDRFusion. |
|
virtual | ||||||||||||
| eVision::EHDRFusion::EHDRFusion | ( | CppWrapperInternal::InternalConstructor | ) |
| void eVision::EHDRFusion::Fuse | ( | const std::vector< 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.
| inputs | Input images. |
| output | Output image. |
| void eVision::EHDRFusion::Fuse | ( | const std::vector< eVision::EImageBW8 > & | inputs, |
| eVision::EImageBW8 & | output, | ||
| const std::vector< 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.
| inputs | Input images. |
| output | Output image. |
| exposureTimes | Exposure times in seconds, can be empty if the merger type is Mertens. |
| void eVision::EHDRFusion::Fuse | ( | const std::vector< 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.
| inputs | Input images. |
| output | Output image. |
| void eVision::EHDRFusion::Fuse | ( | const std::vector< eVision::EImageC24 > & | inputs, |
| eVision::EImageC24 & | output, | ||
| const std::vector< 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.
| inputs | Input images. |
| output | Output image. |
| exposureTimes | Exposure times in seconds, can be empty if the merger type is Mertens. |
| eVision::EDragoToneMapperParameters eVision::EHDRFusion::GetDragoToneMapperParameters | ( | ) | const |
Gets the parameter set for the current Drago tone-mapper. Throws an exception if the current tone-mapper isn't a Drago tone-mapper.
| eVision::ELinearToneMapperParameters eVision::EHDRFusion::GetLinearToneMapperParameters | ( | ) | const |
Gets the parameter set for the current linear tone-mapper. Throws an exception if the current tone-mapper isn't a linear tone-mapper.
| eVision::EMantiukToneMapperParameters eVision::EHDRFusion::GetMantiukToneMapperParameters | ( | ) | const |
Gets the parameter set for the current Mantiuk tone-mapper. Throws an exception if the current tone-mapper isn't a Mantiuk tone-mapper.
| eVision::EMergerType eVision::EHDRFusion::GetMergerType | ( | ) | const |
Gets the current merger type.
| eVision::EMertensMergerParameters eVision::EHDRFusion::GetMertensMergerParameters | ( | ) | const |
Gets the parameter set for the current Mertens merger. Throws an exception if the current tone-mapper isn't a Mertens Merger.
| eVision::EReinhardToneMapperParameters eVision::EHDRFusion::GetReinhardToneMapperParameters | ( | ) | const |
Gets the parameter set for the current Reinhard tone-mapper. Throws an exception if the current tone-mapper isn't a reinhard tone-mapper.
| eVision::EToneMapperType eVision::EHDRFusion::GetToneMapperType | ( | ) | const |
Gets the current tone-mapper type.
| void eVision::EHDRFusion::Load | ( | const std::string & | path | ) |
Loads the EHDRFusion. The given ESerializer must have been created for reading.
| path | The file path. |
| void eVision::EHDRFusion::Load | ( | eVision::ESerializer * | serializer | ) |
Loads the EHDRFusion. The given ESerializer must have been created for reading.
| serializer | The serializer. |
| eVision::EHDRFusion & eVision::EHDRFusion::operator= | ( | const eVision::EHDRFusion & | other | ) |
Assignment operator.
| other | Another EHDRFusion. |
| bool eVision::EHDRFusion::operator== | ( | const eVision::EHDRFusion & | rhs | ) | const |
Checks if this EHDRFusion instance is strictly equal to another.
| rhs | Reference to the other EHDRFusion instance |
| void eVision::EHDRFusion::Save | ( | const std::string & | path | ) |
Saves the EHDRFusion. The given ESerializer must have been created for writing.
| path | The file path. |
| void eVision::EHDRFusion::Save | ( | eVision::ESerializer * | serializer | ) |
Saves the EHDRFusion. The given ESerializer must have been created for writing.
| serializer | The serializer. |
| void eVision::EHDRFusion::SetDragoToneMapperParameters | ( | const eVision::EDragoToneMapperParameters & | params | ) |
Sets the parameter set for the current Drago tone-mapper. Throws an exception if the current tone-mapper isn't a Drago tone-mapper.
| params | New parameters for the Drago tone-mapper |
| void eVision::EHDRFusion::SetLinearToneMapperParameters | ( | const eVision::ELinearToneMapperParameters & | params | ) |
Sets the parameter set for the current linear tone-mapper. Throws an exception if the current tone-mapper isn't a linear tone-mapper.
| params | New parameters for the linear tone-mapper |
| void eVision::EHDRFusion::SetMantiukToneMapperParameters | ( | const eVision::EMantiukToneMapperParameters & | params | ) |
Sets the parameter set for the current Mantiuk tone-mapper. Throws an exception if the current tone-mapper isn't a Mantiuk tone-mapper.
| params | New parameters for the Mantiuk tone-mapper |
| void eVision::EHDRFusion::SetMergerType | ( | eVision::EMergerType | newMergerType | ) |
Sets the current merger type.
| newMergerType | The new merger type. |
| void eVision::EHDRFusion::SetMertensMergerParameters | ( | const eVision::EMertensMergerParameters & | params | ) |
Sets the parameter set for the current Mertens merger. Throws an exception if the current tone-mapper isn't a Mertens Merger.
| params | New parameters for the linear tone-mapper |
| void eVision::EHDRFusion::SetReinhardToneMapperParameters | ( | const eVision::EReinhardToneMapperParameters & | params | ) |
Sets the parameter set for the current Reinhard tone-mapper. Throws an exception if the current tone-mapper isn't a reinhard tone-mapper.
| params | New parameters for the reinhard tone-mapper |
| void eVision::EHDRFusion::SetToneMapperType | ( | eVision::EToneMapperType | newToneMapperType | ) |
Sets the current merger type.
| CppWrapperInternal::WrappedClass eVision::EHDRFusion::wrappedClass_ |