Change tooltip - fixed crash mask blur - add shadow mask to color and blur

This commit is contained in:
Desmis 2019-10-20 15:53:00 +02:00
parent 7b841a6de2
commit c8af7819fe
11 changed files with 73 additions and 56 deletions

View File

@ -1015,7 +1015,7 @@ HISTORY_MSG_774;Local - Reti Mask contrast curve
HISTORY_MSG_775;Local - CBDL Mask contrast curve
HISTORY_MSG_776;Local - Blur Denoise Mask contrast curve
HISTORY_MSG_777;Local - Blur Mask local contrast curve
HISTORY_MSG_778;Local - Blur Mask Wavelet level
HISTORY_MSG_778;Local - Blur Mask shadows
HISTORY_MSG_779;Local - Color Mask local contrast curve
HISTORY_MSG_780;Local - Color Mask shadows
HISTORY_MSG_781;Local - Local contrast Wavelet level
@ -2127,6 +2127,8 @@ TP_LOCALLAB_GAMMASKCOL;Gamma mask
TP_LOCALLAB_SLOMASKCOL;Slope mask
TP_LOCALLAB_SHAMASKCOL;Shadows mask
TP_LOCALLAB_LAPMASKCOL;Laplacian threshold mask
TP_LOCALLAB_LMASK_LL_TOOLTIP;Give priority to action on midtones and high lights
TP_LOCALLAB_LMASK_LEVEL_TOOLTIP;Give priority to action on midtones and high lights and by choosing the concerned wavelet levels
TP_LOCALLAB_SCOPEMASK;Scope Mask DeltaE Image
TP_LOCALLAB_SCOPEMASK_TOOLTIP;Enabled if Mask DeltaE Image is enabled.\nLow values avoid retouching selected area
TP_LOCALLAB_MASFRAME;Mask

View File

@ -191,7 +191,7 @@ public:
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili,
const LocLLmaskCurve & locllmasCurve, bool & llmasutili,
const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili,
bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm,
bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, int shado,
LUTf & lmasklocalcurve, bool & localmaskutili,
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr,
bool delt, const float hueref, const float chromaref, const float lumaref,

View File

@ -2891,7 +2891,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili,
const LocLLmaskCurve & locllmasCurve, bool & llmasutili,
const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili,
bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm,
bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, int shado,
LUTf & lmasklocalcurve, bool & localmaskutili,
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr,
bool delt, const float hueref, const float chromaref, const float lumaref,
@ -3037,6 +3037,10 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
}
}
if (shado > 0) {
ImProcFunctions::shadowsHighlights(bufmaskblurcol, true, 1, 0, shado, 40, sk, 0, lp.shcomp);
}
int wavelet_level = level_br;
int minwin = min(bfw, bfh);
@ -7130,7 +7134,6 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
if (((radius > 1.5 * GAUSS_SKIP) || lp.stren > 0.1 || lp.blmet == 1 || lp.guidb > 1 || lp.showmaskblmet == 2 || lp.enablMask || lp.showmaskblmet == 3 || lp.showmaskblmet == 4) && lp.blurena) {
blurz = true;
}
const int GW = transformed->W;
const int GH = transformed->H;
@ -7259,7 +7262,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
}
}
int wavelet_level = params->locallab.spots.at(sp).wavmaskbl;
int wavelet_level = params->locallab.spots.at(sp).shadmaskbl;
int minwin = min(GW, GH);
int maxlevelspot = 9;
@ -7297,6 +7300,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
wavcontrast4(bufmaskblurbl->L, contrast, GW, GH, level_bl, level_hl, level_br, level_hr, sk, numThreads, loclmasCurveblwav, lmasutiliblwav, maxlvl);
}
int shado = params->locallab.spots.at(sp).shadmaskbl;
if (shado > 0 && (lp.enablMask || lp.showmaskblmet == 3)) {
ImProcFunctions::shadowsHighlights(bufmaskblurbl.get(), true, 1, 0, shado, 40, sk, 0, lp.shcomp);
}
// deltae Mask with scope
bool delt = params->locallab.spots.at(sp).deltae;
int sco = params->locallab.spots.at(sp).scopemask;
@ -7306,7 +7315,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
if (delt) {
if (delt && (lp.enablMask || lp.showmaskblmet == 3)) {
float *rdE[GH] ALIGNED16;
float *rdEBuffer = new float[GH * GW];
@ -7911,7 +7920,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
LocwavCurve dummy;
bool delt = params->locallab.spots.at(sp).deltae;
int sco = params->locallab.spots.at(sp).scopemask;
int shado = 0;
const int limscope = 80;
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
@ -7921,7 +7930,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, loctemp.get(), bufmaskorigcb.get(), originalmaskcb.get(), original, inv, lp,
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskcblocalcurve, localmaskcbutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskcblocalcurve, localmaskcbutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -8208,10 +8217,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
int shado = 0;
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufgbm.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -8244,10 +8254,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
int shado = 0;
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, tmp1.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -8424,10 +8435,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
int shado = 0;
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskorigSH.get(), originalmaskSH.get(), original, inv, lp,
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -8532,10 +8544,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
int shado = 0;
maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskSH.get(), original, inv, lp,
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -10534,6 +10547,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
bool lmasutilicolwav = false;
bool delt = params->locallab.spots.at(sp).deltae;
int sco = params->locallab.spots.at(sp).scopemask;
int shado = 0;
const int limscope = 80;
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
@ -10543,7 +10557,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp,
locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -10812,6 +10826,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
bool lmasutilicolwav = false;
bool delt = params->locallab.spots.at(sp).deltae;
int sco = params->locallab.spots.at(sp).scopemask;
int shado = 0;
const int limscope = 80;
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
@ -10821,7 +10836,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp,
locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
);
@ -11061,7 +11076,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
float blendm = lp.blendmacol;
float lap = params->locallab.spots.at(sp).lapmaskcol;
float pde = params->locallab.spots.at(sp).laplac;
// int wavlevel = params->locallab.spots.at(sp).shadmaskcol;
int shado = params->locallab.spots.at(sp).shadmaskcol;
bool delt = params->locallab.spots.at(sp).deltae;
int sco = params->locallab.spots.at(sp).scopemask;
int level_bl = params->locallab.spots.at(sp).csthresholdcol.getBottomLeft();
@ -11077,7 +11092,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp,
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav,
level_bl, level_hl, level_br, level_hr,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
@ -11281,7 +11296,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
float blendm = lp.blendmacol;
float lap = params->locallab.spots.at(sp).lapmaskcol;
float pde = params->locallab.spots.at(sp).laplac;
// int wavlevel = params->locallab.spots.at(sp).shadmaskcol;
int shado = params->locallab.spots.at(sp).shadmaskcol;
int level_bl = params->locallab.spots.at(sp).csthresholdcol.getBottomLeft();
int level_hl = params->locallab.spots.at(sp).csthresholdcol.getTopLeft();
int level_br = params->locallab.spots.at(sp).csthresholdcol.getBottomRight();
@ -11297,7 +11312,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp,
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav,
level_bl, level_hl, level_br, level_hr,
delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco

View File

@ -804,7 +804,7 @@ enum ProcEventCode {
EvlocallabLmaskcbshape = 774,
EvlocallabLmaskblshape = 775,
EvlocallabLLmaskblshapewav = 776,
Evlocallabwavmaskbl = 777,
Evlocallabshadmaskbl = 777,
EvlocallabLLmaskcolshapewav = 778,
Evlocallabshadmaskcol = 779,
EvlocallabcsThreshold = 780,

View File

@ -2572,7 +2572,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
gammaskbl(1.0),
slomaskbl(0.0),
lapmaskbl(0.0),
wavmaskbl(5),
shadmaskbl(0),
Lmaskblcurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
LLmaskblcurvewav{(double)FCT_MinMaxCPoints, 0.0, 0.5, 0.35, 0.35, 1., 0.5, 0.35, 0.35},
csthresholdblur(1, 1, 6, 5, false),
@ -2870,7 +2870,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& gammaskbl == other.gammaskbl
&& slomaskbl == other.slomaskbl
&& lapmaskbl == other.lapmaskbl
&& wavmaskbl == other.wavmaskbl
&& shadmaskbl == other.shadmaskbl
&& Lmaskblcurve == other.Lmaskblcurve
&& LLmaskblcurvewav == other.LLmaskblcurvewav
&& csthresholdblur == other.csthresholdblur
@ -4154,7 +4154,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gammaskbl, "Locallab", "Gammaskbl_" + std::to_string(i), spot.gammaskbl, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomaskbl, "Locallab", "Slomaskbl_" + std::to_string(i), spot.slomaskbl, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmaskbl, "Locallab", "Lapmaskbl_" + std::to_string(i), spot.lapmaskbl, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).wavmaskbl, "Locallab", "Wavmaskbllevel_" + std::to_string(i), spot.wavmaskbl, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).shadmaskbl, "Locallab", "shadmaskbl_" + std::to_string(i), spot.shadmaskbl, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmaskblcurve, "Locallab", "LmaskblCurve_" + std::to_string(i), spot.Lmaskblcurve, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmaskblcurvewav, "Locallab", "LLmaskblCurvewav_" + std::to_string(i), spot.LLmaskblcurvewav, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).csthresholdblur, "Locallab", "CSThresholdblur_" + std::to_string(i), spot.csthresholdblur.toVector(), keyFile);
@ -5576,7 +5576,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Gammaskbl_" + std::to_string(i), pedited, spot.gammaskbl, spotEdited.gammaskbl);
assignFromKeyfile(keyFile, "Locallab", "Slomaskbl_" + std::to_string(i), pedited, spot.slomaskbl, spotEdited.slomaskbl);
assignFromKeyfile(keyFile, "Locallab", "Lapmaskbl_" + std::to_string(i), pedited, spot.lapmaskbl, spotEdited.lapmaskbl);
assignFromKeyfile(keyFile, "Locallab", "Wavmaskbllevel_" + std::to_string(i), pedited, spot.wavmaskbl, spotEdited.wavmaskbl);
assignFromKeyfile(keyFile, "Locallab", "shadmaskbl_" + std::to_string(i), pedited, spot.shadmaskbl, spotEdited.shadmaskbl);
assignFromKeyfile(keyFile, "Locallab", "LmaskblCurve_" + std::to_string(i), pedited, spot.Lmaskblcurve, spotEdited.Lmaskblcurve);
assignFromKeyfile(keyFile, "Locallab", "LLmaskblCurvewav_" + std::to_string(i), pedited, spot.LLmaskblcurvewav, spotEdited.LLmaskblcurvewav);
if (keyFile.has_key("Locallab", "CSThresholdblur_" + std::to_string(i))) {

View File

@ -1120,7 +1120,7 @@ struct LocallabParams {
double gammaskbl;
double slomaskbl;
double lapmaskbl;
int wavmaskbl;
int shadmaskbl;
std::vector<double> Lmaskblcurve;
std::vector<double> LLmaskblcurvewav;
Threshold<int> csthresholdblur;

View File

@ -804,7 +804,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
LUMINANCECURVE, //EvlocallabLmaskcbshape
LUMINANCECURVE, //EvlocallabLmaskblshape
LUMINANCECURVE, //EvlocallabLLmaskblshapewav
LUMINANCECURVE, //Evlocallabwavmaskbl
LUMINANCECURVE, //Evlocallabshadmaskbl
LUMINANCECURVE, //EvlocallabLLmaskcolshapewav
LUMINANCECURVE, //Evlocallabshadmaskcol
LUMINANCECURVE, //EvlocallabcsThreshold

View File

@ -265,7 +265,7 @@ Locallab::Locallab():
gammaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GAMMASKCOL"), 0.05, 5.0, 0.01, 1.))),
slomaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SLOMASKCOL"), 0.0, 15.0, 0.1, 0.))),
lapmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_LAPMASKCOL"), 0.0, 100.0, 0.1, 0.))),
wavmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WAMASKCOL"), 1, 9, 1, 5))),
shadmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SHAMASKCOL"), 0, 100, 1, 0))),
isogr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_ISOGR"), 20, 6400, 1, 400))),
strengr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRENGR"), 0, 100, 1, 0))),
scalegr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SCALEGR"), 0, 100, 1, 100))),
@ -687,7 +687,7 @@ Locallab::Locallab():
Lmaskshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcurve.at(0)), defSpot.Lmaskcurve);
if (showtooltip) {
Lmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
Lmaskshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmaskshape;
@ -703,7 +703,7 @@ Locallab::Locallab():
LLmaskcolshapewav->setResetCurve(FlatCurveType(defSpot.LLmaskcolcurvewav.at(0)), defSpot.LLmaskcolcurvewav);
if (showtooltip) {
LLmaskcolshapewav->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
LLmaskcolshapewav->setTooltip(M("TP_LOCALLAB_LMASK_LEVEL_TOOLTIP"));
}
LLmaskcolshapewav->setBottomBarBgGradient(mllshape);
@ -755,7 +755,7 @@ Locallab::Locallab():
maskcolBox->pack_start(*chromaskcol, Gtk::PACK_SHRINK, 0);
maskcolBox->pack_start(*gammaskcol, Gtk::PACK_SHRINK, 0);
maskcolBox->pack_start(*slomaskcol, Gtk::PACK_SHRINK, 0);
// maskcolBox->pack_start(*shadmaskcol, Gtk::PACK_SHRINK, 0);
maskcolBox->pack_start(*shadmaskcol, Gtk::PACK_SHRINK, 0);
maskcolBox->pack_start(*mask2CurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
maskcolBox->pack_start(*mask2CurveEditorGwav, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
maskcolBox->pack_start(*csThresholdcol, Gtk::PACK_SHRINK, 0);
@ -949,7 +949,7 @@ Locallab::Locallab():
Lmaskexpshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskexpcurve.at(0)), defSpot.Lmaskexpcurve);
if (showtooltip) {
Lmaskexpshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
Lmaskexpshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmaskexpshape;
@ -1134,7 +1134,7 @@ Locallab::Locallab():
LmaskSHshape->setResetCurve(DiagonalCurveType(defSpot.LmaskSHcurve.at(0)), defSpot.LmaskSHcurve);
if (showtooltip) {
LmaskSHshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
LmaskSHshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmaskSHshape;
@ -1385,7 +1385,7 @@ Locallab::Locallab():
Lmasktmshape->setResetCurve(DiagonalCurveType(defSpot.Lmasktmcurve.at(0)), defSpot.Lmasktmcurve);
if (showtooltip) {
Lmasktmshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
Lmasktmshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmasktmshape;
@ -1625,7 +1625,7 @@ Locallab::Locallab():
Lmaskretishape->setResetCurve(DiagonalCurveType(defSpot.Lmaskreticurve.at(0)), defSpot.Lmaskreticurve);
if (showtooltip) {
Lmaskretishape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
Lmaskretishape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmaskretishape;
@ -1997,7 +1997,7 @@ Locallab::Locallab():
Lmaskcbshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcbcurve.at(0)), defSpot.Lmaskcbcurve);
if (showtooltip) {
Lmaskcbshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
Lmaskcbshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmaskcbshape;
@ -2157,7 +2157,7 @@ Locallab::Locallab():
Lmaskblshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskblcurve.at(0)), defSpot.Lmaskblcurve);
if (showtooltip) {
Lmaskblshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
Lmaskblshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
}
std::vector<GradientMilestone> mLmaskblshape;
@ -2174,7 +2174,7 @@ Locallab::Locallab():
LLmaskblshapewav->setResetCurve(FlatCurveType(defSpot.LLmaskblcurvewav.at(0)), defSpot.LLmaskblcurvewav);
if (showtooltip) {
LLmaskblshapewav->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
LLmaskblshapewav->setTooltip(M("TP_LOCALLAB_LMASK_LEVEL_TOOLTIP"));
}
LLmaskblshapewav->setBottomBarBgGradient(mllshape);
@ -2238,7 +2238,7 @@ Locallab::Locallab():
gammaskbl->setAdjusterListener(this);
slomaskbl->setAdjusterListener(this);
lapmaskbl->setAdjusterListener(this);
wavmaskbl->setAdjusterListener(this);
shadmaskbl->setAdjusterListener(this);
ToolParamBlock* const maskblBox = Gtk::manage(new ToolParamBlock());
maskblBox->pack_start(*showmaskblMethod, Gtk::PACK_SHRINK, 4);
@ -2250,9 +2250,9 @@ Locallab::Locallab():
maskblBox->pack_start(*chromaskbl, Gtk::PACK_SHRINK, 0);
maskblBox->pack_start(*gammaskbl, Gtk::PACK_SHRINK, 0);
maskblBox->pack_start(*slomaskbl, Gtk::PACK_SHRINK, 0);
maskblBox->pack_start(*shadmaskbl, Gtk::PACK_SHRINK, 0);
maskblBox->pack_start(*mask2blCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
maskblBox->pack_start(*mask2blCurveEditorGwav, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
// maskblBox->pack_start(*wavmaskbl, Gtk::PACK_SHRINK, 0);
maskblBox->pack_start(*csThresholdblur, Gtk::PACK_SHRINK, 0);
@ -3474,7 +3474,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pp->locallab.spots.at(pp->locallab.selspot).gammaskbl = gammaskbl->getValue();
pp->locallab.spots.at(pp->locallab.selspot).slomaskbl = slomaskbl->getValue();
pp->locallab.spots.at(pp->locallab.selspot).lapmaskbl = lapmaskbl->getValue();
pp->locallab.spots.at(pp->locallab.selspot).wavmaskbl = wavmaskbl->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).shadmaskbl = shadmaskbl->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).fftwbl = fftwbl->get_active();
pp->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve = Lmaskblshape->getCurve();
pp->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav = LLmaskblshapewav->getCurve();
@ -3789,7 +3789,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pe->locallab.spots.at(pp->locallab.selspot).gammaskbl = pe->locallab.spots.at(pp->locallab.selspot).gammaskbl || gammaskbl->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).slomaskbl = pe->locallab.spots.at(pp->locallab.selspot).slomaskbl || slomaskbl->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).lapmaskbl = pe->locallab.spots.at(pp->locallab.selspot).lapmaskbl || lapmaskbl->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).wavmaskbl = pe->locallab.spots.at(pp->locallab.selspot).wavmaskbl || wavmaskbl->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).shadmaskbl = pe->locallab.spots.at(pp->locallab.selspot).shadmaskbl || shadmaskbl->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).fftwbl = pe->locallab.spots.at(pp->locallab.selspot).fftwbl || !fftwbl->get_inconsistent();
pe->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve = pe->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve || !Lmaskblshape->isUnChanged();
pe->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav = pe->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav || !LLmaskblshapewav->isUnChanged();
@ -4091,7 +4091,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pedited->locallab.spots.at(pp->locallab.selspot).gammaskbl = pedited->locallab.spots.at(pp->locallab.selspot).gammaskbl || gammaskbl->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).slomaskbl = pedited->locallab.spots.at(pp->locallab.selspot).slomaskbl || slomaskbl->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).lapmaskbl = pedited->locallab.spots.at(pp->locallab.selspot).lapmaskbl || lapmaskbl->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).wavmaskbl = pedited->locallab.spots.at(pp->locallab.selspot).wavmaskbl || wavmaskbl->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).shadmaskbl = pedited->locallab.spots.at(pp->locallab.selspot).shadmaskbl || shadmaskbl->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).fftwbl = pedited->locallab.spots.at(pp->locallab.selspot).fftwbl || !fftwbl->get_inconsistent();
pedited->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve || !Lmaskblshape->isUnChanged();
pedited->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav = pedited->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav || !LLmaskblshapewav->isUnChanged();
@ -6031,7 +6031,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
gammaskbl->setDefault(defSpot->gammaskbl);
slomaskbl->setDefault(defSpot->slomaskbl);
lapmaskbl->setDefault(defSpot->lapmaskbl);
wavmaskbl->setDefault(defSpot->wavmaskbl);
shadmaskbl->setDefault(defSpot->shadmaskbl);
csThresholdblur->setDefault<int>(defSpot->csthresholdblur);
// Tone Mapping
stren->setDefault(defSpot->stren);
@ -6212,7 +6212,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
gammaskbl->setDefaultEditedState(Irrelevant);
slomaskbl->setDefaultEditedState(Irrelevant);
lapmaskbl->setDefaultEditedState(Irrelevant);
wavmaskbl->setDefaultEditedState(Irrelevant);
shadmaskbl->setDefaultEditedState(Irrelevant);
csThresholdblur->setDefaultEditedState(Irrelevant);
// Tone Mapping
stren->setDefaultEditedState(Irrelevant);
@ -6397,7 +6397,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
gammaskbl->setDefaultEditedState(defSpotState->gammaskbl ? Edited : UnEdited);
slomaskbl->setDefaultEditedState(defSpotState->slomaskbl ? Edited : UnEdited);
lapmaskbl->setDefaultEditedState(defSpotState->lapmaskbl ? Edited : UnEdited);
wavmaskbl->setDefaultEditedState(defSpotState->wavmaskbl ? Edited : UnEdited);
shadmaskbl->setDefaultEditedState(defSpotState->shadmaskbl ? Edited : UnEdited);
csThresholdblur->setDefaultEditedState(defSpotState->csthresholdblur ? Edited : UnEdited);
// Tone Mapping
stren->setDefaultEditedState(defSpotState->stren ? Edited : UnEdited);
@ -7047,9 +7047,9 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
}
}
if (a == wavmaskbl) {
if (a == shadmaskbl) {
if (listener) {
listener->panelChanged(Evlocallabwavmaskbl, wavmaskbl->getTextValue());
listener->panelChanged(Evlocallabshadmaskbl, shadmaskbl->getTextValue());
}
}
@ -7700,7 +7700,7 @@ void Locallab::setBatchMode(bool batchMode)
gammaskbl->showEditedCB();
slomaskbl->showEditedCB();
lapmaskbl->showEditedCB();
wavmaskbl->showEditedCB();
shadmaskbl->showEditedCB();
csThresholdblur->showEditedCB();
// Tone Mapping
stren->showEditedCB();
@ -8330,7 +8330,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
gammaskbl->setValue(pp->locallab.spots.at(index).gammaskbl);
slomaskbl->setValue(pp->locallab.spots.at(index).slomaskbl);
lapmaskbl->setValue(pp->locallab.spots.at(index).lapmaskbl);
wavmaskbl->setValue(pp->locallab.spots.at(index).wavmaskbl);
shadmaskbl->setValue(pp->locallab.spots.at(index).shadmaskbl);
fftwbl->set_active(pp->locallab.spots.at(index).fftwbl);
Lmaskblshape->setCurve(pp->locallab.spots.at(index).Lmaskblcurve);
LLmaskblshapewav->setCurve(pp->locallab.spots.at(index).LLmaskblcurvewav);
@ -8690,7 +8690,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
gammaskbl->setEditedState(spotState->gammaskbl ? Edited : UnEdited);
slomaskbl->setEditedState(spotState->slomaskbl ? Edited : UnEdited);
lapmaskbl->setEditedState(spotState->lapmaskbl ? Edited : UnEdited);
wavmaskbl->setEditedState(spotState->wavmaskbl ? Edited : UnEdited);
shadmaskbl->setEditedState(spotState->shadmaskbl ? Edited : UnEdited);
fftwbl->set_inconsistent(multiImage && !spotState->fftwbl);
Lmaskblshape->setUnChanged(!spotState->Lmaskblcurve);
LLmaskblshapewav->setUnChanged(!spotState->LLmaskblcurvewav);

View File

@ -222,7 +222,7 @@ private:
Adjuster* const gammaskbl;
Adjuster* const slomaskbl;
Adjuster* const lapmaskbl;
Adjuster* const wavmaskbl;
Adjuster* const shadmaskbl;
Adjuster* const isogr;
Adjuster* const strengr;
Adjuster* const scalegr;

View File

@ -1111,7 +1111,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
locallab.spots.at(j).gammaskbl = locallab.spots.at(j).gammaskbl && pSpot.gammaskbl == otherSpot.gammaskbl;
locallab.spots.at(j).slomaskbl = locallab.spots.at(j).slomaskbl && pSpot.slomaskbl == otherSpot.slomaskbl;
locallab.spots.at(j).lapmaskbl = locallab.spots.at(j).lapmaskbl && pSpot.lapmaskbl == otherSpot.lapmaskbl;
locallab.spots.at(j).wavmaskbl = locallab.spots.at(j).wavmaskbl && pSpot.wavmaskbl == otherSpot.wavmaskbl;
locallab.spots.at(j).shadmaskbl = locallab.spots.at(j).shadmaskbl && pSpot.shadmaskbl == otherSpot.shadmaskbl;
locallab.spots.at(j).fftwbl = locallab.spots.at(j).fftwbl && pSpot.fftwbl == otherSpot.fftwbl;
locallab.spots.at(j).Lmaskblcurve = locallab.spots.at(j).Lmaskblcurve && pSpot.Lmaskblcurve == otherSpot.Lmaskblcurve;
locallab.spots.at(j).LLmaskblcurvewav = locallab.spots.at(j).LLmaskblcurvewav && pSpot.LLmaskblcurvewav == otherSpot.LLmaskblcurvewav;
@ -3337,8 +3337,8 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.spots.at(i).lapmaskbl = mods.locallab.spots.at(i).lapmaskbl;
}
if (locallab.spots.at(i).wavmaskbl) {
toEdit.locallab.spots.at(i).wavmaskbl = mods.locallab.spots.at(i).wavmaskbl;
if (locallab.spots.at(i).shadmaskbl) {
toEdit.locallab.spots.at(i).shadmaskbl = mods.locallab.spots.at(i).shadmaskbl;
}
if (locallab.spots.at(i).Lmaskblcurve) {
@ -4960,7 +4960,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
gammaskbl(v),
slomaskbl(v),
lapmaskbl(v),
wavmaskbl(v),
shadmaskbl(v),
Lmaskblcurve(v),
LLmaskblcurvewav(v),
csthresholdblur(v),
@ -5255,7 +5255,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
gammaskbl = v;
slomaskbl = v;
lapmaskbl = v;
wavmaskbl = v;
shadmaskbl = v;
Lmaskblcurve = v;
LLmaskblcurvewav = v;
csthresholdblur = v;

View File

@ -531,7 +531,7 @@ public:
bool gammaskbl;
bool slomaskbl;
bool lapmaskbl;
bool wavmaskbl;
bool shadmaskbl;
bool Lmaskblcurve;
bool LLmaskblcurvewav;
bool csthresholdblur;