diff --git a/rtdata/languages/default b/rtdata/languages/default index 5ae722656..f21a40d24 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -786,7 +786,7 @@ HISTORY_MSG_WAVMERGEL;Merge L HISTORY_MSG_WAVMERGEC;Merge C HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final -HISTORY_MSG_WAVSHOWMASK;Show mask +HISTORY_MSG_WAVSHOWMASK;Show wavelet mask HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2271,7 +2271,7 @@ TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels. TP_WAVELET_SHA;Sharp mask -TP_WAVELET_SHOWMASK;Show mask +TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_CLA;Clarity TP_WAVELET_USHARP;Sharp method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 7ddf9ed8f..21fca6153 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1066,9 +1066,14 @@ void Crop::update(int todo) ble[ir][jr] = (labnCrop->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - - float blur = 10.f / skip * (0.01f + 0.8f * WaveParams.softrad); - rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; + + float blur = 10.f / skip * (0.001f + 0.8f * WaveParams.softrad); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 1f18a3527..61736cdfb 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -939,10 +939,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ble[ir][jr] = (nprevl->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; - float blur = 10.f / scale * (0.01f + 0.8f * WaveParams.softrad); + float blur = 10.f / scale * (0.001f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 8b5f33b74..b25e75b7a 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1286,9 +1286,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - float blur = 10.f / skip * (0.1f + 0.1f * waparams.softradend); + // float blur = 10.f / skip * (0.1f + 0.1f * waparams.softradend); + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * waparams.softradend + bepsil; - rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + float blur = 10.f / scale * (0.001f + 0.8f * waparams.softradend); + + rtengine::guidedFilter(guid, ble, ble, blur, epsil, multiTh); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 50badfdd6..fde5c8310 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1210,10 +1210,15 @@ private: ble[ir][jr] = (labView->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; - float blur = 10.f / 1 * (0.01f + 0.8f * WaveParams.softrad); + float blur = 10.f / 1 * (0.001f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false);