diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index 839af2d45..10fd84cd0 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -7366,7 +7366,12 @@ void ImProcFunctions::wavcontrast4(struct local_params& lp, float ** tmp, float for (int y = 0; y < H_Lm; y++) { for (int x = 0; x < W_Lm; x++) { - factorwav[y][x] /= factmax; + if (lp.strwav < 0.f) { + factorwav[y][x] /= factmax; + factorwav[y][x] = -(factorwav[y][x] + 1.f); + } else { + factorwav[y][x] = 1.f - factorwav[y][x]; + } } } @@ -11651,7 +11656,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o } - if ((lp.lcamount > 0.f || wavcurve || lp.showmasklcmet == 2 || lp.enalcMask || lp.showmasklcmet == 3 || lp.showmasklcmet == 4 || wavcurvelev || wavcurvecon || wavcurvecomp || wavcurvecompre || params->locallab.spots.at(sp).residblur > 0.f || params->locallab.spots.at(sp).levelblur > 0.f || params->locallab.spots.at(sp).residcont != 0.f || params->locallab.spots.at(sp).clarilres != 0.f || params->locallab.spots.at(sp).claricres != 0.f) && call < 3 && lp.lcena) { + if ((lp.lcamount > 0.f || wavcurve || lp.showmasklcmet == 2 || lp.enalcMask || lp.showmasklcmet == 3 || lp.showmasklcmet == 4 || lp.strwav != 0.f || wavcurvelev || wavcurvecon || wavcurvecomp || wavcurvecompre || params->locallab.spots.at(sp).residblur > 0.f || params->locallab.spots.at(sp).levelblur > 0.f || params->locallab.spots.at(sp).residcont != 0.f || params->locallab.spots.at(sp).clarilres != 0.f || params->locallab.spots.at(sp).claricres != 0.f) && call < 3 && lp.lcena) { int ystart = std::max(static_cast(lp.yc - lp.lyT) - cy, 0); int yend = std::min(static_cast(lp.yc + lp.ly) - cy, original->H);