18 #ifndef PIC_TONE_MAPPING_DURAND_TMO_HPP 19 #define PIC_TONE_MAPPING_DURAND_TMO_HPP 21 #include "../base.hpp" 23 #include "../util/string.hpp" 24 #include "../filtering/filter.hpp" 25 #include "../filtering/filter_luminance.hpp" 26 #include "../algorithms/bilateral_separation.hpp" 27 #include "../tone_mapping/tone_mapping_operator.hpp" 89 float min_log_base, max_log_base;
94 float log_absoulte = compression_factor * max_log_base;
96 *base *= compression_factor;
98 *base -= log_absoulte;
PIC_INLINE void bilateralSeparation(Image *imgIn, ImageVec &out, float sigma_s=-1.0f, float sigma_r=0.4f, bool bLogDomain=false)
bilateralSeparation
Definition: bilateral_separation.hpp:35
Image * Process(ImageVec imgIn, Image *imgOut=NULL)
Process.
Definition: tone_mapping_operator.hpp:120
std::vector< Image * > ImageVec
ImageVec an std::vector of pic::Image.
Definition: image_vec.hpp:29
ImageVec images
Definition: tone_mapping_operator.hpp:35
FilterLuminance flt_lum
Definition: durand_tmo.hpp:38
The ToneMappingOperator class.
Definition: tone_mapping_operator.hpp:31
PIC_INLINE float log10fPlusEpsilon(float x)
log10fPlusEpsilon
Definition: math.hpp:355
The DurandTMO class.
Definition: durand_tmo.hpp:34
virtual Image * Process(ImageVec imgIn, Image *imgOut)
Process.
Definition: filter.hpp:390
The FilterLuminance class.
Definition: filter_luminance.hpp:33
float * getMinVal(BBox *box, float *ret)
getMinVal computes the minimum value for the current Image.
float target_contrast
Definition: durand_tmo.hpp:39
void updateImage(Image *imgIn)
updateImage
Definition: tone_mapping_operator.hpp:78
void release()
release
Definition: tone_mapping_operator.hpp:68
PIC_INLINE float powf10fMinusEpsilon(float x)
powf10fMinusEpsilon
Definition: math.hpp:365
void applyFunction(float(*func)(float))
applyFunction is an operator that applies an input function to all values in data.
The Image class stores an image as buffer of float.
Definition: image.hpp:60
~DurandTMO()
Definition: durand_tmo.hpp:52
void removeSpecials()
removeSpecials removes NaN and +/-Inf values and sets them to 0.0f.
PIC_INLINE ImageVec Single(Image *img)
Single creates an std::vector which contains img; this is for filters input.
Definition: image_vec.hpp:36
Definition: bilateral_separation.hpp:25
static Image * execute(Image *imgIn, Image *imgOut)
execute
Definition: durand_tmo.hpp:116
DurandTMO(float target_contrast=5.0f)
DurandTMO.
Definition: durand_tmo.hpp:44
Image * ProcessAux(ImageVec imgIn, Image *imgOut)
ProcessAux.
Definition: durand_tmo.hpp:76
float * getMaxVal(BBox *box, float *ret)
getMaxVal computes the maximum value for the current Image.
void update(float target_contrast=5.0f)
update
Definition: durand_tmo.hpp:61