From fb4f64699bf4c7ca2609cf3ea32493cc73b24748 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 12 May 2020 17:19:44 +0200 Subject: [PATCH] Use previewDeltaE information to show deltaE --- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 2 +- rtengine/improcfun.h | 2 +- rtengine/iplocallab.cc | 23 ++++++++++++----------- rtengine/simpleprocess.cc | 2 +- rtgui/locallabtools.cc | 2 +- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 5cd29a1f9..2da3dc8d0 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1140,7 +1140,7 @@ void Crop::update(int todo) locedgwavCurve, locedgwavutili, LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, - parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->localllcMask, parent->locallsharMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask, + parent->previewDeltaE, parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->localllcMask, parent->locallsharMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); } else { parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, lastorigCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve, @@ -1175,7 +1175,7 @@ void Crop::update(int todo) locwavCurveden, locwavdenutili, locedgwavCurve, locedgwavutili, LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, - huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 4b5252920..352efe3d6 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1323,7 +1323,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) locwavCurveden, locwavdenutili, locedgwavCurve, locedgwavutili, LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, - huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); lastorigimp->CopyFrom(nprevl); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 24cd6f42c..2ac5bafcb 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -319,7 +319,7 @@ public: const LocwavCurve & locedgwavCurve, bool & locedgwavutili, bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc, double & huerefblur, double &chromarefblur, double & lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int &lastsav, - int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, + bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax); void addGaNoise(LabImage *lab, LabImage *dst, const float mean, const float variance, const int sk); diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index 5582946c1..aa235e526 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -327,6 +327,7 @@ struct local_params { int qualmet; int qualcurvemet; int gridmet; + bool prevdE; int showmaskcolmet; int showmaskcolmetinv; int showmaskexpmet; @@ -540,7 +541,7 @@ static void SobelCannyLuma(float **sobelL, float **luma, int bfw, int bfh, float -static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, const LocwavCurve & locwavCurveden, bool & locwavdenutili) +static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, const LocwavCurve & locwavCurveden, bool & locwavdenutili) { int w = oW; int h = oH; @@ -619,7 +620,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall lp.linear = locallab.spots.at(sp).linear; lp.fftColorMask = locallab.spots.at(sp).fftColorMask; - + lp.prevdE = prevDeltaE; lp.showmaskcolmet = llColorMask; lp.showmaskcolmetinv = llColorMaskinv; lp.showmaskexpmet = llExpMask; @@ -2688,7 +2689,7 @@ void ImProcFunctions::DeNoise_Local(int call, struct local_params& lp, LabImage transformed->L[y][x] = CLIP(12000.f + amplabL * difL);// * 10.f empirical to can visualize modifications transformed->a[y][x] = CLIPC(amplabL * difa);// * 10.f empirical to can visualize modifications transformed->b[y][x] = CLIPC(amplabL * difb);// * 10.f empirical to can visualize modifications - } else if (previewbl) { + } else if (previewbl || lp.prevdE) { float difbdisp = (reducdEL + reducdEa + reducdEb) * 10000.f * lp.colorde; if (transformed->L[y][x] < darklim) { //enhance dark luminance as user can see! @@ -2960,9 +2961,9 @@ void ImProcFunctions::InverseBlurNoise_Local(LabImage * originalmask, float **bu transformed->L[y][x] = CLIP(12000.f + difL); transformed->a[y][x] = CLIPC(difa); transformed->b[y][x] = CLIPC(difb); - } else if (previewbl) { + } else if (previewbl || lp.prevdE) { transformed->a[y][x] = 0.f; - transformed->b[y][x] = (difb); + transformed->b[y] [x] = (difb); } break; @@ -5393,7 +5394,7 @@ void ImProcFunctions::transit_shapedetect(int senstype, const LabImage * bufexpo transformed->L[y][x] = CLIP(12000.f + difL); transformed->a[y][x] = CLIPC(difa); transformed->b[y][x] = CLIPC(difb); - } else if (previewcb || previewtm) { + } else if (previewcb || previewtm || lp.prevdE) { if (fabs(difb) < 500.f) { difb += difL; } @@ -5893,7 +5894,7 @@ void ImProcFunctions::calc_ref(int sp, LabImage * original, LabImage * transform if (params->locallab.enabled) { //always calculate hueref, chromaref, lumaref before others operations use in normal mode for all modules exceprt denoise struct local_params lp; - calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, locwavCurveden, locwavdenutili); + calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, locwavCurveden, locwavdenutili); int begy = lp.yc - lp.lyT; int begx = lp.xc - lp.lxL; int yEn = lp.yc + lp.ly; @@ -6357,7 +6358,7 @@ void ImProcFunctions::BlurNoise_Local(LabImage *tmp1, LabImage * originalmask, f transformed->L[y][x] = CLIP(12000.f + 0.5f * ampli * difL); transformed->a[y][x] = CLIPC(ampli * difa); transformed->b[y][x] = CLIPC(ampli * difb); - } else if (previewbl) {//show deltaE + } else if (previewbl || lp.prevdE) {//show deltaE float difbdisp = reducdE * 10000.f * lp.colorde; if (transformed->L[y][x] < darklim) { //enhance dark luminance as user can see! @@ -6780,7 +6781,7 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag transformed->L[y + ystart][x + xstart] = CLIP(12000.f + 0.5f * ampli * diflc); transformed->a[y + ystart][x + xstart] = CLIPC(ampli * difa); transformed->b[y + ystart][x + xstart] = CLIPC(ampli * difb); - } else if (previewexp || previewvib || previewcol || previewSH || previewtm || previewlc || previeworig) {//show deltaE + } else if (previewexp || previewvib || previewcol || previewSH || previewtm || previewlc || previeworig || lp.prevdE) {//show deltaE float difbdisp = reducdE * 10000.f * lp.colorde; if (transformed->L[y + ystart][x + xstart] < darklim) { //enhance dark luminance as user can see! @@ -10397,7 +10398,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const LocwavCurve & locedgwavCurve, bool & locedgwavutili, bool & LHutili, bool & HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc, double & huerefblur, double & chromarefblur, double & lumarefblur, double & hueref, double & chromaref, double & lumaref, double & sobelref, int &lastsav, - int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, + bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, float & minCD, float & maxCD, float & mini, float & maxi, float & Tmean, float & Tsigma, float & Tmin, float & Tmax) { //general call of others functions : important return hueref, chromaref, lumaref @@ -10411,7 +10412,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o int del = 3; // to avoid crash with [loy - begy] and [lox - begx] and bfh bfw // with gtk2 [loy - begy-1] [lox - begx -1 ] and del = 1 int delxy = 0; struct local_params lp; - calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, lllcMask, llsharMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili); + calcLocalParams(sp, oW, oH, params->locallab, lp, prevDeltaE, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, lllcMask, llsharMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili); const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip int strred = 1;//(lp.strucc - 1); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 287248790..8155a4117 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1341,7 +1341,7 @@ private: locwavCurveden, locwavdenutili, locedgwavCurve, locedgwavutili, LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, - huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); lastorigView->CopyFrom(labView); diff --git a/rtgui/locallabtools.cc b/rtgui/locallabtools.cc index 79d510df2..00b2f033d 100644 --- a/rtgui/locallabtools.cc +++ b/rtgui/locallabtools.cc @@ -3884,7 +3884,7 @@ void LocallabShadow::updateGUIToMode(const modeType new_type) { if (new_type == Normal) { // Advanced widgets are hidden in Normal mode - shMethod->hide(); + shMethod->show(); blurSHde->hide(); lapmaskSH->hide(); gammaskSH->hide();