18 #ifndef PIC_FILTERING_FILTER_EXPOSURE_FUSION_WEIGHTS 19 #define PIC_FILTERING_FILTER_EXPOSURE_FUSION_WEIGHTS 21 #include "../filtering/filter.hpp" 23 #include "../colors/saturation.hpp" 44 for(
int j = box->
y0; j < box->y1; j++) {
46 for(
int i = box->
x0; i < box->x1; i++) {
48 float *pCur0 = (*src[0])(i, j);
49 float *pCur1 = (*src[1])(i, j);
55 float *pCurN0 = (*src[0])(i, j + 1);
56 float *pCurS0 = (*src[0])(i, j - 1);
57 float *pCurE0 = (*src[0])(i + 1, j);
58 float *pCurW0 = (*src[0])(i - 1, j);
60 float pCon = fabsf(-4.0
f * pCur0[0] +
61 pCurN0[0] + pCurS0[0] + pCurE0[0] + pCurW0[0]);
65 for(
int c = 0; c < src[1]->channels; c++) {
66 float delta = pCur1[c] -
mu;
67 pExp += delta * delta;
72 float *out = (*dst)(i, j);
73 out[0] = powf(pCon,
wC) * powf(pExp,
wE) * powf(pSat,
wS) + 1e-12
f;
106 this->wC =
wC > 0.0f ?
MIN(
wC, 1.0
f) : 1.0f;
107 this->wE =
wE > 0.0f ?
MIN(
wE, 1.0
f) : 1.0f;
108 this->wS =
wS > 0.0f ?
MIN(
wS, 1.0
f) : 1.0f;
float mu
Definition: filter_exposure_fusion_weights.hpp:34
The BBox class manages the creation of bounding boxes for images.
Definition: bbox.hpp:29
PIC_INLINE float computeSaturation(float *data, int channels=3)
computeSaturation
Definition: saturation.hpp:33
FilterExposureFusionWeights(float wC=1.0f, float wE=1.0f, float wS=1.0f)
FilterExposureFusionWeights.
Definition: filter_exposure_fusion_weights.hpp:87
std::vector< Image * > ImageVec
ImageVec an std::vector of pic::Image.
Definition: image_vec.hpp:29
int x0
Definition: bbox.hpp:32
void update(float wC=1.0f, float wE=1.0f, float wS=1.0f)
update
Definition: filter_exposure_fusion_weights.hpp:99
The Filter class.
Definition: filter.hpp:50
void ProcessBBox(Image *dst, ImageVec src, BBox *box)
ProcessBBox.
Definition: filter_exposure_fusion_weights.hpp:42
float sigma_sq_2
Definition: filter_exposure_fusion_weights.hpp:34
int y0
Definition: bbox.hpp:32
int minInputImages
Definition: filter_radial_basis_function.hpp:56
The FilterExposureFusionWeights class.
Definition: filter_exposure_fusion_weights.hpp:30
#define MIN(a, b)
Definition: math.hpp:69
The Image class stores an image as buffer of float.
Definition: image.hpp:60
virtual void f(FilterFData *data)
f
Definition: filter_radial_basis_function.hpp:69
#define CLAMPi(x, a, b)
Definition: math.hpp:81
float wC
Definition: filter_exposure_fusion_weights.hpp:33
Definition: bilateral_separation.hpp:25
float wE
Definition: filter_exposure_fusion_weights.hpp:33
float wS
Definition: filter_exposure_fusion_weights.hpp:33