fattal: removed negative clipping
This commit is contained in:
@@ -1104,7 +1104,7 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
float oldMedian;
|
float oldMedian;
|
||||||
const float percentile = float(LIM(1, params->fattal.anchor, 100)) / 100.f;
|
const float percentile = float(LIM(params->fattal.anchor, 1, 100)) / 100.f;
|
||||||
findMinMaxPercentile (Yr.data(), Yr.getRows() * Yr.getCols(), percentile, oldMedian, percentile, oldMedian, multiThread);
|
findMinMaxPercentile (Yr.data(), Yr.getRows() * Yr.getCols(), percentile, oldMedian, percentile, oldMedian, multiThread);
|
||||||
// median filter on the deep shadows, to avoid boosting noise
|
// median filter on the deep shadows, to avoid boosting noise
|
||||||
// because w2 >= w and h2 >= h, we can use the L buffer as temporary buffer for Median_Denoise()
|
// because w2 >= w and h2 >= h, we can use the L buffer as temporary buffer for Median_Denoise()
|
||||||
@@ -1159,15 +1159,15 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb)
|
|||||||
for (int x = 0; x < w; x++) {
|
for (int x = 0; x < w; x++) {
|
||||||
int xx = x * wr + 1;
|
int xx = x * wr + 1;
|
||||||
|
|
||||||
float Y = std::max(Yr (x, y), epsilon);
|
float Y = std::max(Yr(x, y), epsilon);
|
||||||
float l = std::max (L (xx, yy), epsilon) * (scale / Y);
|
float l = std::max(L(xx, yy), epsilon) * (scale / Y);
|
||||||
rgb->r (y, x) = std::max (rgb->r (y, x), 0.f) * l;
|
rgb->r(y, x) *= l;
|
||||||
rgb->g (y, x) = std::max (rgb->g (y, x), 0.f) * l;
|
rgb->g(y, x) *= l;
|
||||||
rgb->b (y, x) = std::max (rgb->b (y, x), 0.f) * l;
|
rgb->b(y, x) *= l;
|
||||||
|
|
||||||
assert (std::isfinite (rgb->r (y, x)));
|
assert(std::isfinite(rgb->r(y, x)));
|
||||||
assert (std::isfinite (rgb->g (y, x)));
|
assert(std::isfinite(rgb->g(y, x)));
|
||||||
assert (std::isfinite (rgb->b (y, x)));
|
assert(std::isfinite(rgb->b(y, x)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user