diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index ae1a731ae..4ea091a20 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -6488,7 +6488,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o //Blur and noise - if (((radius >= 1.5 * GAUSS_SKIP && lp.rad > 1.) || lp.stren > 0.1 || lp.blmet == 1 || lp.guidb > 0.f || lp.showmaskblmet == 2 || lp.enablMask || lp.showmaskblmet == 3 || lp.showmaskblmet == 4) && lp.blurena) { // radius < GAUSS_SKIP means no gauss, just copy of original image + if (((radius >= 1.5 * GAUSS_SKIP && lp.rad > 1.) || lp.stren > 0.1 || lp.blmet == 1 || lp.guidb > 1 || lp.showmaskblmet == 2 || lp.enablMask || lp.showmaskblmet == 3 || lp.showmaskblmet == 4) && lp.blurena) { // radius < GAUSS_SKIP means no gauss, just copy of original image std::unique_ptr tmp1; std::unique_ptr tmp2; const int ystart = std::max(static_cast(lp.yc - lp.lyT) - cy, 0); @@ -6762,7 +6762,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o } if (lp.blurmet == 0 && lp.blmet == 2) { - if (lp.guidb > 0.f) { + if (lp.guidb > 1) { lp.actsp = true; #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) @@ -6776,12 +6776,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o } double thresM = 0.05 * lp.epsb; - double thresm = 0.001 * lp.epsb; - softproc(bufgb.get(), tmp1.get(), lp.guidb, bfh, bfw, thresM, thresm, 0.0001f, sk, multiThread); + double thresm = 0.01 * lp.epsb; + softproc(bufgb.get(), tmp1.get(), 3.f * lp.guidb, bfh, bfw, thresM, thresm, 0.0001f, sk, multiThread); } } else if (lp.blurmet == 1 && lp.blmet == 2) { - if (lp.guidb > 0.f) { + if (lp.guidb > 1) { lp.actsp = true; #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) @@ -6795,8 +6795,8 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o } double thresM = 0.05 * lp.epsb; - double thresm = 0.001 * lp.epsb; - softproc(tmp2.get(), tmp1.get(), lp.guidb, GH, GW, thresM, thresm, 0.0001f, sk, multiThread); + double thresm = 0.01 * lp.epsb; + softproc(tmp2.get(), tmp1.get(), 3.f * lp.guidb, GH, GW, thresM, thresm, 0.0001f, sk, multiThread); } } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 0486a4c49..187ab3234 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2461,8 +2461,8 @@ LocallabParams::LocallabSpot::LocallabSpot() : strength(0), sensibn(40), itera(1), - guidbl(0), - epsbl(1), + guidbl(1), + epsbl(10), blMethod("blur"), blurMethod("norm"), medMethod("33"), diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index 209d5f0bf..f8dcfe8eb 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -237,8 +237,8 @@ Locallab::Locallab(): radius(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADIUS"), 1.0, 100.0, 0.1, 1.0))), strength(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRENGTH"), 0, 100, 1, 0))), itera(Gtk::manage(new Adjuster(M("TP_DIRPYRDENOISE_MEDIAN_PASSES"), 1, 4, 1, 1))), - guidbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GUIDBL"), 0, 100, 0, 1))), - epsbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_EPSBL"), 0, 100, 0, 1))), + guidbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GUIDBL"), 1, 100, 1, 1))), + epsbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_EPSBL"), 1, 100, 1, 10))), sensibn(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIBN"), 0, 100, 1, 40))), blendmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 100, 1, 0))), radmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADMASKCOL"), 0.0, 100.0, 0.1, 10.))),