18 #ifndef PIC_ALGORITHMS_BILATERAL_SEPARATION_HPP 19 #define PIC_ALGORITHMS_BILATERAL_SEPARATION_HPP 21 #include "../image.hpp" 22 #include "../filtering/filter_bilateral_2ds.hpp" 23 #include "../util/math.hpp" 36 float sigma_s = -1.0f,
38 bool bLogDomain =
false)
71 Image *img_detail = img_tmp;
74 *img_detail -= *img_flt;
77 *img_detail /= *img_flt;
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
std::vector< Image * > ImageVec
ImageVec an std::vector of pic::Image.
Definition: image_vec.hpp:29
PIC_INLINE float log10fPlusEpsilon(float x)
log10fPlusEpsilon
Definition: math.hpp:355
float heightf
Definition: image.hpp:84
#define PIC_INLINE
Definition: base.hpp:33
PIC_INLINE float powf10fMinusEpsilon(float x)
powf10fMinusEpsilon
Definition: math.hpp:365
float widthf
Definition: image.hpp:84
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
Image * clone() const
Clone creates a deep copy of the calling instance.
void removeSpecials()
removeSpecials removes NaN and +/-Inf values and sets them to 0.0f.
Definition: bilateral_separation.hpp:25
bool isValid()
isValid checks if the current image is valid, which means if they have an allocated buffer or not...
static Image * execute(Image *imgIn, float sigma_s, float sigma_r)
execute
Definition: filter_bilateral_2ds.hpp:126
#define MAX(a, b)
Definition: math.hpp:73