Add contrast curve to mask 6 exposure
This commit is contained in:
parent
39c20c548a
commit
e44d4c1324
@ -1008,6 +1008,7 @@ HISTORY_MSG_767;Local - Grain Iso
|
|||||||
HISTORY_MSG_768;Local - Grain Strength
|
HISTORY_MSG_768;Local - Grain Strength
|
||||||
HISTORY_MSG_769;Local - Grain Scale
|
HISTORY_MSG_769;Local - Grain Scale
|
||||||
HISTORY_MSG_770;Local - Color Mask contrast curve
|
HISTORY_MSG_770;Local - Color Mask contrast curve
|
||||||
|
HISTORY_MSG_771;Local - Exp Mask contrast curve
|
||||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||||
|
@ -887,7 +887,9 @@ void Crop::update(int todo)
|
|||||||
bool localexutili = parent->localexutili;
|
bool localexutili = parent->localexutili;
|
||||||
LUTf exlocalcurve2(65536, 0);
|
LUTf exlocalcurve2(65536, 0);
|
||||||
bool localmaskutili = parent->localmaskutili;
|
bool localmaskutili = parent->localmaskutili;
|
||||||
|
bool localmaskexputili = parent->localmaskexputili;
|
||||||
LUTf lmasklocalcurve2(65536, 0);
|
LUTf lmasklocalcurve2(65536, 0);
|
||||||
|
LUTf lmaskexplocalcurve2(65536, 0);
|
||||||
LUTf hltonecurveloc2(65536, 0); //65536
|
LUTf hltonecurveloc2(65536, 0); //65536
|
||||||
LUTf shtonecurveloc2(65536, 0);
|
LUTf shtonecurveloc2(65536, 0);
|
||||||
LUTf tonecurveloc2(65536, 0);
|
LUTf tonecurveloc2(65536, 0);
|
||||||
@ -989,6 +991,8 @@ void Crop::update(int todo)
|
|||||||
CurveFactory::curveexLocal(localexutili, params.locallab.spots.at(sp).excurve, exlocalcurve2, sca);
|
CurveFactory::curveexLocal(localexutili, params.locallab.spots.at(sp).excurve, exlocalcurve2, sca);
|
||||||
localmaskutili = false;
|
localmaskutili = false;
|
||||||
CurveFactory::curvemaskLocal(localmaskutili, params.locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmaskutili, params.locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve2, sca);
|
||||||
|
localmaskexputili = false;
|
||||||
|
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve2, sca);
|
||||||
|
|
||||||
|
|
||||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||||
@ -1026,15 +1030,18 @@ void Crop::update(int todo)
|
|||||||
// Locallab mask are only shown for selected spot
|
// Locallab mask are only shown for selected spot
|
||||||
if (sp == params.locallab.selspot) {
|
if (sp == params.locallab.selspot) {
|
||||||
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve,
|
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve,
|
||||||
lllocalcurve2,locallutili,
|
lllocalcurve2,locallutili, loclhCurve, lochhCurve,
|
||||||
loclhCurve, lochhCurve, lmasklocalcurve2, localmaskutili, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
lmasklocalcurve2, localmaskutili,
|
||||||
|
lmaskexplocalcurve2, localmaskexputili,
|
||||||
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
|
||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre,
|
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||||
|
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre,
|
||||||
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
if (parent->locallListener) {
|
if (parent->locallListener) {
|
||||||
@ -1042,15 +1049,18 @@ void Crop::update(int todo)
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve,
|
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve,
|
||||||
lllocalcurve2,locallutili,
|
lllocalcurve2,locallutili, loclhCurve, lochhCurve,
|
||||||
loclhCurve, lochhCurve, lmasklocalcurve2, localmaskutili, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
lmasklocalcurve2, localmaskutili,
|
||||||
|
lmaskexplocalcurve2, localmaskexputili,
|
||||||
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
|
||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||||
|
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
}
|
}
|
||||||
lllocalcurve2.clear();
|
lllocalcurve2.clear();
|
||||||
@ -1058,6 +1068,7 @@ void Crop::update(int todo)
|
|||||||
cclocalcurve2.clear();
|
cclocalcurve2.clear();
|
||||||
exlocalcurve2.clear();
|
exlocalcurve2.clear();
|
||||||
lmasklocalcurve2.clear();
|
lmasklocalcurve2.clear();
|
||||||
|
lmaskexplocalcurve2.clear();
|
||||||
hltonecurveloc2.clear();
|
hltonecurveloc2.clear();
|
||||||
shtonecurveloc2.clear();
|
shtonecurveloc2.clear();
|
||||||
tonecurveloc2.clear();
|
tonecurveloc2.clear();
|
||||||
|
@ -172,6 +172,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
tonecurveloc(65536, 0),
|
tonecurveloc(65536, 0),
|
||||||
lightCurveloc(32770, 0),
|
lightCurveloc(32770, 0),
|
||||||
lmasklocalcurve(65536, 0),
|
lmasklocalcurve(65536, 0),
|
||||||
|
lmaskexplocalcurve(65536, 0),
|
||||||
locallutili(false),
|
locallutili(false),
|
||||||
localcutili(false),
|
localcutili(false),
|
||||||
localexutili(false),
|
localexutili(false),
|
||||||
@ -179,6 +180,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
lhmasutili(false),
|
lhmasutili(false),
|
||||||
lcmasutili(false),
|
lcmasutili(false),
|
||||||
localmaskutili(false),
|
localmaskutili(false),
|
||||||
|
localmaskexputili(false),
|
||||||
lcmasexputili(false),
|
lcmasexputili(false),
|
||||||
lhmasexputili(false),
|
lhmasexputili(false),
|
||||||
llmasexputili(false),
|
llmasexputili(false),
|
||||||
@ -969,6 +971,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
CurveFactory::curveCCLocal(localcutili, params->locallab.spots.at(sp).cccurve, cclocalcurve, sca);
|
CurveFactory::curveCCLocal(localcutili, params->locallab.spots.at(sp).cccurve, cclocalcurve, sca);
|
||||||
CurveFactory::curveexLocal(localexutili, params->locallab.spots.at(sp).excurve, exlocalcurve, sca);
|
CurveFactory::curveexLocal(localexutili, params->locallab.spots.at(sp).excurve, exlocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmaskutili, params->locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskutili, params->locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, sca);
|
||||||
|
CurveFactory::curvemaskLocal(localmaskexputili, params->locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, sca);
|
||||||
double ecomp = params->locallab.spots.at(sp).expcomp;
|
double ecomp = params->locallab.spots.at(sp).expcomp;
|
||||||
double black = params->locallab.spots.at(sp).black;
|
double black = params->locallab.spots.at(sp).black;
|
||||||
double hlcompr = params->locallab.spots.at(sp).hlcompr;
|
double hlcompr = params->locallab.spots.at(sp).hlcompr;
|
||||||
@ -1023,6 +1026,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
if (sp == params->locallab.selspot) {
|
if (sp == params->locallab.selspot) {
|
||||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve,
|
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve,
|
||||||
lmasklocalcurve, localmaskutili,
|
lmasklocalcurve, localmaskutili,
|
||||||
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1030,7 +1034,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler,
|
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||||
|
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler,
|
||||||
locallColorMask, locallColorMaskinv, locallExpMask, locallExpMaskinv, locallSHMask, locallSHMaskinv, locallcbMask, locallretiMask, locallsoftMask, localltmMask, locallblMask,
|
locallColorMask, locallColorMaskinv, locallExpMask, locallExpMaskinv, locallSHMask, locallSHMaskinv, locallcbMask, locallretiMask, locallsoftMask, localltmMask, locallblMask,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
if (locallListener) {
|
if (locallListener) {
|
||||||
@ -1039,6 +1044,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
} else {
|
} else {
|
||||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve,
|
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve,
|
||||||
lmasklocalcurve, localmaskutili,
|
lmasklocalcurve, localmaskutili,
|
||||||
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1046,7 +1052,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||||
|
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
}
|
}
|
||||||
//recalculate references after
|
//recalculate references after
|
||||||
@ -1061,6 +1068,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
cclocalcurve.clear();
|
cclocalcurve.clear();
|
||||||
exlocalcurve.clear();
|
exlocalcurve.clear();
|
||||||
lmasklocalcurve.clear();
|
lmasklocalcurve.clear();
|
||||||
|
lmaskexplocalcurve.clear();
|
||||||
hltonecurveloc.clear();
|
hltonecurveloc.clear();
|
||||||
shtonecurveloc.clear();
|
shtonecurveloc.clear();
|
||||||
tonecurveloc.clear();
|
tonecurveloc.clear();
|
||||||
|
@ -234,6 +234,7 @@ protected:
|
|||||||
LUTf tonecurveloc;
|
LUTf tonecurveloc;
|
||||||
LUTf lightCurveloc;
|
LUTf lightCurveloc;
|
||||||
LUTf lmasklocalcurve;
|
LUTf lmasklocalcurve;
|
||||||
|
LUTf lmaskexplocalcurve;
|
||||||
// LUTu lhist16loc;
|
// LUTu lhist16loc;
|
||||||
LocretigainCurve locRETgainCurve;
|
LocretigainCurve locRETgainCurve;
|
||||||
LocretitransCurve locRETtransCurve;
|
LocretitransCurve locRETtransCurve;
|
||||||
@ -270,6 +271,7 @@ protected:
|
|||||||
bool lhmasutili;
|
bool lhmasutili;
|
||||||
bool lcmasutili;
|
bool lcmasutili;
|
||||||
bool localmaskutili;
|
bool localmaskutili;
|
||||||
|
bool localmaskexputili;
|
||||||
bool lcmasexputili;
|
bool lcmasexputili;
|
||||||
bool lhmasexputili;
|
bool lhmasexputili;
|
||||||
bool llmasexputili;
|
bool llmasexputili;
|
||||||
|
@ -216,6 +216,7 @@ public:
|
|||||||
void paste_ref(LabImage* spotbuffer, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp);
|
void paste_ref(LabImage* spotbuffer, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp);
|
||||||
void Lab_Local(int call, int sp, float** shbuffer, LabImage* original, LabImage* transformed, LabImage* reserved, int cx, int cy, int oW, int oH, int sk, const LocretigainCurve & locRETgainCcurve, const LocretitransCurve &locRETtransCcurve, LUTf & lllocalcurve, bool & locallutili, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve,
|
void Lab_Local(int call, int sp, float** shbuffer, LabImage* original, LabImage* transformed, LabImage* reserved, int cx, int cy, int oW, int oH, int sk, const LocretigainCurve & locRETgainCcurve, const LocretitransCurve &locRETtransCcurve, LUTf & lllocalcurve, bool & locallutili, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve,
|
||||||
LUTf & lmasklocalcurve, bool & localmaskutili,
|
LUTf & lmasklocalcurve, bool & localmaskutili,
|
||||||
|
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
||||||
const LocCCmaskCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
const LocCCmaskCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
||||||
const LocCCmaskCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
@ -224,7 +225,8 @@ public:
|
|||||||
const LocCCmaskCurve & locccmastmCurve, bool &lcmastmutili, const LocLLmaskCurve & locllmastmCurve, bool &llmastmutili, const LocHHmaskCurve & lochhmastmCurve, bool & lhmastmutili,
|
const LocCCmaskCurve & locccmastmCurve, bool &lcmastmutili, const LocLLmaskCurve & locllmastmCurve, bool &llmastmutili, const LocHHmaskCurve & lochhmastmCurve, bool & lhmastmutili,
|
||||||
const LocCCmaskCurve & locccmasblCurve, bool &lcmasblutili, const LocLLmaskCurve & locllmasblCurve, bool &llmasblutili, const LocHHmaskCurve & lochhmasblCurve, bool & lhmasblutili,
|
const LocCCmaskCurve & locccmasblCurve, bool &lcmasblutili, const LocLLmaskCurve & locllmasblCurve, bool &llmasblutili, const LocHHmaskCurve & lochhmasblCurve, bool & lhmasblutili,
|
||||||
const LocwavCurve & locwavCurve, bool & locwavutili,
|
const LocwavCurve & locwavCurve, bool & locwavutili,
|
||||||
bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localcutili, 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,
|
bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localcutili, 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 llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, 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);
|
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);
|
void addGaNoise(LabImage *lab, LabImage *dst, const float mean, const float variance, const int sk);
|
||||||
|
@ -2840,12 +2840,12 @@ void ImProcFunctions::retinex_pde(float * datain, float * dataout, int bfw, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int xstart, int ystart, int sk, int cx, int cy, LabImage* bufcolorig, LabImage* bufmaskblurcol, LabImage* originalmaskcol, LabImage* original, int inv, const struct local_params & lp,
|
void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int xstart, int ystart, int sk, int cx, int cy, LabImage* bufcolorig, LabImage* bufmaskblurcol, LabImage* originalmaskcol, LabImage* original, int inv, const struct local_params & lp,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili,
|
||||||
const LocLLmaskCurve & locllmasCurve, bool & llmasutili,
|
const LocLLmaskCurve & locllmasCurve, bool & llmasutili,
|
||||||
const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili,
|
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,
|
||||||
LUTf & lmasklocalcurve, bool & localmaskutili
|
LUTf & lmasklocalcurve, bool & localmaskutili
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
array2D<float> ble(bfw, bfh);
|
array2D<float> ble(bfw, bfh);
|
||||||
array2D<float> guid(bfw, bfh);
|
array2D<float> guid(bfw, bfh);
|
||||||
@ -2971,7 +2971,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//curve actually only for color and light
|
|
||||||
if (lmasklocalcurve && localmaskutili) {
|
if (lmasklocalcurve && localmaskutili) {
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel for schedule(dynamic,16)
|
#pragma omp parallel for schedule(dynamic,16)
|
||||||
@ -6711,19 +6711,21 @@ void ImProcFunctions::DeNoise(int call, int del, float * slidL, float * slida, f
|
|||||||
|
|
||||||
|
|
||||||
void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * original, LabImage * transformed, LabImage * reserved, int cx, int cy, int oW, int oH, int sk,
|
void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * original, LabImage * transformed, LabImage * reserved, int cx, int cy, int oW, int oH, int sk,
|
||||||
const LocretigainCurve & locRETgainCcurve, const LocretitransCurve & locRETtransCcurve, LUTf & lllocalcurve, bool & locallutili, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve,
|
const LocretigainCurve & locRETgainCcurve, const LocretitransCurve & locRETtransCcurve, LUTf & lllocalcurve, bool & locallutili, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve,
|
||||||
LUTf & lmasklocalcurve, bool & localmaskutili,
|
LUTf & lmasklocalcurve, bool & localmaskutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
||||||
const LocCCmaskCurve & locccmasexpCurve, bool & lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool & llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
||||||
const LocCCmaskCurve & locccmasSHCurve, bool & lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool & llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskCurve & locccmasexpCurve, bool & lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool & llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
||||||
const LocCCmaskCurve & locccmascbCurve, bool & lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool & llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili,
|
const LocCCmaskCurve & locccmasSHCurve, bool & lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool & llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
const LocCCmaskCurve & locccmasretiCurve, bool & lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool & llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
const LocCCmaskCurve & locccmascbCurve, bool & lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool & llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili,
|
||||||
const LocCCmaskCurve & locccmastmCurve, bool & lcmastmutili, const LocLLmaskCurve & locllmastmCurve, bool & llmastmutili, const LocHHmaskCurve & lochhmastmCurve, bool & lhmastmutili,
|
const LocCCmaskCurve & locccmasretiCurve, bool & lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool & llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
const LocCCmaskCurve & locccmasblCurve, bool & lcmasblutili, const LocLLmaskCurve & locllmasblCurve, bool & llmasblutili, const LocHHmaskCurve & lochhmasblCurve, bool & lhmasblutili,
|
const LocCCmaskCurve & locccmastmCurve, bool & lcmastmutili, const LocLLmaskCurve & locllmastmCurve, bool & llmastmutili, const LocHHmaskCurve & lochhmastmCurve, bool & lhmastmutili,
|
||||||
const LocwavCurve & locwavCurve, bool & locwavutili,
|
const LocCCmaskCurve & locccmasblCurve, bool & lcmasblutili, const LocLLmaskCurve & locllmasblCurve, bool & llmasblutili, const LocHHmaskCurve & lochhmasblCurve, bool & lhmasblutili,
|
||||||
bool & LHutili, bool & HHutili, LUTf & cclocalcurve, bool & localcutili, 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,
|
const LocwavCurve & locwavCurve, bool & locwavutili,
|
||||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
bool & LHutili, bool & HHutili, LUTf & cclocalcurve, bool & localcutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
||||||
float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax)
|
double & huerefblur, double & chromarefblur, double & lumarefblur, double & hueref, double & chromaref, double & lumaref, double & sobelref,
|
||||||
|
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, 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)
|
||||||
{
|
{
|
||||||
/* comment on processus deltaE
|
/* comment on processus deltaE
|
||||||
* the algo uses 3 different ways to manage deltaE according to the type of intervention
|
* the algo uses 3 different ways to manage deltaE according to the type of intervention
|
||||||
@ -10207,12 +10209,10 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float blendm = lp.blendmaexp;
|
float blendm = lp.blendmaexp;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskexp;
|
float lap = params->locallab.spots.at(sp).lapmaskexp;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
float pde = params->locallab.spots.at(sp).laplac;
|
||||||
LUTf dummy;
|
|
||||||
bool uti;
|
|
||||||
|
|
||||||
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp,
|
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,
|
locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread,
|
||||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, dummy, uti);
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskexplocalcurve, localmaskexputili);
|
||||||
|
|
||||||
if (lp.showmaskexpmet == 3) {
|
if (lp.showmaskexpmet == 3) {
|
||||||
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, bufexporig.get(), transformed, bufmaskblurexp.get(), 0);
|
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, bufexporig.get(), transformed, bufmaskblurexp.get(), 0);
|
||||||
@ -10474,12 +10474,10 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float blendm = lp.blendmaexp;
|
float blendm = lp.blendmaexp;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskexp;
|
float lap = params->locallab.spots.at(sp).lapmaskexp;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
float pde = params->locallab.spots.at(sp).laplac;
|
||||||
LUTf dummy;
|
|
||||||
bool uti;
|
|
||||||
|
|
||||||
maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp,
|
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,
|
locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread,
|
||||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, dummy, uti);
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskexplocalcurve, localmaskexputili);
|
||||||
|
|
||||||
if (lp.showmaskexpmetinv == 1) {
|
if (lp.showmaskexpmetinv == 1) {
|
||||||
showmask(lp, 0, 0, cx, cy, GW, GH, bufexporig.get(), transformed, bufmaskblurexp.get(), inv);
|
showmask(lp, 0, 0, cx, cy, GW, GH, bufexporig.get(), transformed, bufmaskblurexp.get(), inv);
|
||||||
@ -10716,7 +10714,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float blendm = lp.blendmacol;
|
float blendm = lp.blendmacol;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskcol;
|
float lap = params->locallab.spots.at(sp).lapmaskcol;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
float pde = params->locallab.spots.at(sp).laplac;
|
||||||
//LUTf & lmasklocalcurve, bool & localmaskutili
|
|
||||||
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp,
|
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,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread,
|
||||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili);
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili);
|
||||||
@ -10919,11 +10917,10 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float blendm = lp.blendmacol;
|
float blendm = lp.blendmacol;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskcol;
|
float lap = params->locallab.spots.at(sp).lapmaskcol;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
float pde = params->locallab.spots.at(sp).laplac;
|
||||||
LUTf dummy;
|
|
||||||
bool uti;
|
|
||||||
maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp,
|
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,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread,
|
||||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, dummy, uti);
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili);
|
||||||
|
|
||||||
|
|
||||||
if (lp.showmaskcolmetinv == 1) {
|
if (lp.showmaskcolmetinv == 1) {
|
||||||
|
@ -797,6 +797,7 @@ enum ProcEventCode {
|
|||||||
Evlocallabstrengr = 767,
|
Evlocallabstrengr = 767,
|
||||||
Evlocallabscalegr = 768,
|
Evlocallabscalegr = 768,
|
||||||
EvlocallabLmaskshape = 769,
|
EvlocallabLmaskshape = 769,
|
||||||
|
EvlocallabLmaskexpshape = 770,
|
||||||
NUMOFEVENTS
|
NUMOFEVENTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2493,6 +2493,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
|||||||
slomaskexp(0.0),
|
slomaskexp(0.0),
|
||||||
lapmaskexp(0.0),
|
lapmaskexp(0.0),
|
||||||
softradiusexp(0.0),
|
softradiusexp(0.0),
|
||||||
|
Lmaskexpcurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||||
expMethod("std"),
|
expMethod("std"),
|
||||||
exnoiseMethod("none"),
|
exnoiseMethod("none"),
|
||||||
laplacexp(0.0),
|
laplacexp(0.0),
|
||||||
@ -2776,6 +2777,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
|||||||
&& slomaskexp == other.slomaskexp
|
&& slomaskexp == other.slomaskexp
|
||||||
&& lapmaskexp == other.lapmaskexp
|
&& lapmaskexp == other.lapmaskexp
|
||||||
&& softradiusexp == other.softradiusexp
|
&& softradiusexp == other.softradiusexp
|
||||||
|
&& Lmaskexpcurve == other.Lmaskexpcurve
|
||||||
&& expMethod == other.expMethod
|
&& expMethod == other.expMethod
|
||||||
&& exnoiseMethod == other.exnoiseMethod
|
&& exnoiseMethod == other.exnoiseMethod
|
||||||
&& laplacexp == other.laplacexp
|
&& laplacexp == other.laplacexp
|
||||||
@ -4045,6 +4047,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
|||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomaskexp, "Locallab", "Slomaskexp_" + std::to_string(i), spot.slomaskexp, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomaskexp, "Locallab", "Slomaskexp_" + std::to_string(i), spot.slomaskexp, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmaskexp, "Locallab", "Lapmaskexp_" + std::to_string(i), spot.lapmaskexp, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmaskexp, "Locallab", "Lapmaskexp_" + std::to_string(i), spot.lapmaskexp, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).softradiusexp, "Locallab", "Softradiusexp_" + std::to_string(i), spot.softradiusexp, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).softradiusexp, "Locallab", "Softradiusexp_" + std::to_string(i), spot.softradiusexp, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmaskexpcurve, "Locallab", "LmaskexpCurve_" + std::to_string(i), spot.Lmaskexpcurve, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expMethod, "Locallab", "ExpMethod_" + std::to_string(i), spot.expMethod, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expMethod, "Locallab", "ExpMethod_" + std::to_string(i), spot.expMethod, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).exnoiseMethod, "Locallab", "ExnoiseMethod_" + std::to_string(i), spot.exnoiseMethod, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).exnoiseMethod, "Locallab", "ExnoiseMethod_" + std::to_string(i), spot.exnoiseMethod, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).laplacexp, "Locallab", "Laplacexp_" + std::to_string(i), spot.laplacexp, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).laplacexp, "Locallab", "Laplacexp_" + std::to_string(i), spot.laplacexp, keyFile);
|
||||||
@ -5429,6 +5432,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
assignFromKeyfile(keyFile, "Locallab", "Slomaskexp_" + std::to_string(i), pedited, spot.slomaskexp, spotEdited.slomaskexp);
|
assignFromKeyfile(keyFile, "Locallab", "Slomaskexp_" + std::to_string(i), pedited, spot.slomaskexp, spotEdited.slomaskexp);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Lapmaskexp_" + std::to_string(i), pedited, spot.lapmaskexp, spotEdited.lapmaskexp);
|
assignFromKeyfile(keyFile, "Locallab", "Lapmaskexp_" + std::to_string(i), pedited, spot.lapmaskexp, spotEdited.lapmaskexp);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Softradiusexp_" + std::to_string(i), pedited, spot.softradiusexp, spotEdited.softradiusexp);
|
assignFromKeyfile(keyFile, "Locallab", "Softradiusexp_" + std::to_string(i), pedited, spot.softradiusexp, spotEdited.softradiusexp);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "LmaskexpCurve_" + std::to_string(i), pedited, spot.Lmaskexpcurve, spotEdited.Lmaskexpcurve);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "ExpMethod_" + std::to_string(i), pedited, spot.expMethod, spotEdited.expMethod);
|
assignFromKeyfile(keyFile, "Locallab", "ExpMethod_" + std::to_string(i), pedited, spot.expMethod, spotEdited.expMethod);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "ExnoiseMethod_" + std::to_string(i), pedited, spot.exnoiseMethod, spotEdited.exnoiseMethod);
|
assignFromKeyfile(keyFile, "Locallab", "ExnoiseMethod_" + std::to_string(i), pedited, spot.exnoiseMethod, spotEdited.exnoiseMethod);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Laplacexp_" + std::to_string(i), pedited, spot.laplacexp, spotEdited.laplacexp);
|
assignFromKeyfile(keyFile, "Locallab", "Laplacexp_" + std::to_string(i), pedited, spot.laplacexp, spotEdited.laplacexp);
|
||||||
|
@ -1042,6 +1042,7 @@ struct LocallabParams {
|
|||||||
double slomaskexp;
|
double slomaskexp;
|
||||||
double lapmaskexp;
|
double lapmaskexp;
|
||||||
double softradiusexp;
|
double softradiusexp;
|
||||||
|
std::vector<double> Lmaskexpcurve;
|
||||||
Glib::ustring expMethod;
|
Glib::ustring expMethod;
|
||||||
Glib::ustring exnoiseMethod;
|
Glib::ustring exnoiseMethod;
|
||||||
double laplacexp;
|
double laplacexp;
|
||||||
|
@ -796,7 +796,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
|||||||
LUMINANCECURVE, //Evlocallabisogr
|
LUMINANCECURVE, //Evlocallabisogr
|
||||||
LUMINANCECURVE, //Evlocallabstrengr
|
LUMINANCECURVE, //Evlocallabstrengr
|
||||||
LUMINANCECURVE, //Evlocallabscalegr
|
LUMINANCECURVE, //Evlocallabscalegr
|
||||||
LUMINANCECURVE //EvlocallabLmaskshape
|
LUMINANCECURVE, //EvlocallabLmaskshape
|
||||||
|
LUMINANCECURVE //EvlocallabLmaskexpshape
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace rtengine
|
namespace rtengine
|
||||||
|
@ -1125,6 +1125,7 @@ private:
|
|||||||
LUTf lightCurveloc(32770, 0);
|
LUTf lightCurveloc(32770, 0);
|
||||||
LUTf exlocalcurve(65536, 0);
|
LUTf exlocalcurve(65536, 0);
|
||||||
LUTf lmasklocalcurve(65536, 0);
|
LUTf lmasklocalcurve(65536, 0);
|
||||||
|
LUTf lmaskexplocalcurve(65536, 0);
|
||||||
|
|
||||||
// int maxspot = 1;
|
// int maxspot = 1;
|
||||||
float** shbuffer = nullptr;
|
float** shbuffer = nullptr;
|
||||||
@ -1148,6 +1149,7 @@ private:
|
|||||||
bool lhmasutili = false;
|
bool lhmasutili = false;
|
||||||
bool lcmasutili = false;
|
bool lcmasutili = false;
|
||||||
bool localmaskutili = false;
|
bool localmaskutili = false;
|
||||||
|
bool localmaskexputili = false;
|
||||||
bool lcmasexputili = false;
|
bool lcmasexputili = false;
|
||||||
bool lhmasexputili = false;
|
bool lhmasexputili = false;
|
||||||
bool llmasexputili = false;
|
bool llmasexputili = false;
|
||||||
@ -1197,6 +1199,7 @@ private:
|
|||||||
CurveFactory::curveCCLocal(localcutili, params.locallab.spots.at(sp).cccurve, cclocalcurve, 1);
|
CurveFactory::curveCCLocal(localcutili, params.locallab.spots.at(sp).cccurve, cclocalcurve, 1);
|
||||||
CurveFactory::curveexLocal(localexutili, params.locallab.spots.at(sp).excurve, exlocalcurve, 1);
|
CurveFactory::curveexLocal(localexutili, params.locallab.spots.at(sp).excurve, exlocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmaskutili, params.locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskutili, params.locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, 1);
|
||||||
|
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, 1);
|
||||||
//provisory
|
//provisory
|
||||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||||
double black = params.locallab.spots.at(sp).black;
|
double black = params.locallab.spots.at(sp).black;
|
||||||
@ -1230,8 +1233,9 @@ private:
|
|||||||
float Tmax;
|
float Tmax;
|
||||||
|
|
||||||
// No Locallab mask is shown in exported picture
|
// No Locallab mask is shown in exported picture
|
||||||
ipf.Lab_Local(2, sp, (float**)shbuffer, labView, labView, reservView, 0, 0, fw, fh, 1, locRETgainCurve, locRETtransCurve, lllocalcurve, locallutili, loclhCurve,
|
ipf.Lab_Local(2, sp, (float**)shbuffer, labView, labView, reservView, 0, 0, fw, fh, 1, locRETgainCurve, locRETtransCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve,
|
||||||
lochhCurve, lmasklocalcurve, localmaskutili,
|
lmasklocalcurve, localmaskutili,
|
||||||
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1239,7 +1243,8 @@ private:
|
|||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
locccmasblCurve, lcmasblutili, locllmasblCurve, llmasblutili, lochhmasblCurve, lhmasblutili,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||||
|
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
|
|
||||||
|
|
||||||
@ -1249,6 +1254,7 @@ private:
|
|||||||
exlocalcurve.clear();
|
exlocalcurve.clear();
|
||||||
hltonecurveloc.clear();
|
hltonecurveloc.clear();
|
||||||
lmasklocalcurve.clear();
|
lmasklocalcurve.clear();
|
||||||
|
lmaskexplocalcurve.clear();
|
||||||
shtonecurveloc.clear();
|
shtonecurveloc.clear();
|
||||||
tonecurveloc.clear();
|
tonecurveloc.clear();
|
||||||
lightCurveloc.clear();
|
lightCurveloc.clear();
|
||||||
|
@ -159,6 +159,7 @@ Locallab::Locallab():
|
|||||||
// Exposure
|
// Exposure
|
||||||
curveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_CURVEEDITOR_TONES_LABEL"))),
|
curveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_CURVEEDITOR_TONES_LABEL"))),
|
||||||
maskexpCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
maskexpCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
|
mask2expCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
||||||
//Shadows Highlight
|
//Shadows Highlight
|
||||||
maskSHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
maskSHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
// Vibranceretinex
|
// Vibranceretinex
|
||||||
@ -912,6 +913,21 @@ Locallab::Locallab():
|
|||||||
HHmaskexpshape->setBottomBarColorProvider(this, 6);
|
HHmaskexpshape->setBottomBarColorProvider(this, 6);
|
||||||
|
|
||||||
maskexpCurveEditorG->curveListComplete();
|
maskexpCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
mask2expCurveEditorG->setCurveListener(this);
|
||||||
|
Lmaskexpshape = static_cast<DiagonalCurveEditor*>(mask2expCurveEditorG->addCurve(CT_Diagonal, "L(L)"));
|
||||||
|
Lmaskexpshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskexpcurve.at(0)), defSpot.Lmaskexpcurve);
|
||||||
|
|
||||||
|
if (showtooltip) {
|
||||||
|
Lmaskexpshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<GradientMilestone> mLmaskexpshape;
|
||||||
|
mLmaskexpshape.push_back(GradientMilestone(0., 0., 0., 0.));
|
||||||
|
mLmaskexpshape.push_back(GradientMilestone(1., 1., 1., 1.));
|
||||||
|
Lmaskexpshape->setBottomBarBgGradient(mLmaskexpshape);
|
||||||
|
Lmaskexpshape->setLeftBarBgGradient(mLmaskexpshape);
|
||||||
|
mask2expCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
|
||||||
pdeFrame->set_label_align(0.025, 0.5);
|
pdeFrame->set_label_align(0.025, 0.5);
|
||||||
@ -973,6 +989,7 @@ Locallab::Locallab():
|
|||||||
maskexpBox->pack_start(*chromaskexp, Gtk::PACK_SHRINK, 0);
|
maskexpBox->pack_start(*chromaskexp, Gtk::PACK_SHRINK, 0);
|
||||||
maskexpBox->pack_start(*gammaskexp, Gtk::PACK_SHRINK, 0);
|
maskexpBox->pack_start(*gammaskexp, Gtk::PACK_SHRINK, 0);
|
||||||
maskexpBox->pack_start(*slomaskexp, Gtk::PACK_SHRINK, 0);
|
maskexpBox->pack_start(*slomaskexp, Gtk::PACK_SHRINK, 0);
|
||||||
|
maskexpBox->pack_start(*mask2expCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||||
expmaskexp->add(*maskexpBox, false);
|
expmaskexp->add(*maskexpBox, false);
|
||||||
exposeBox->pack_start(*expmaskexp);
|
exposeBox->pack_start(*expmaskexp);
|
||||||
|
|
||||||
@ -2231,6 +2248,7 @@ Locallab::~Locallab()
|
|||||||
delete HCurveEditorG;
|
delete HCurveEditorG;
|
||||||
delete maskCurveEditorG;
|
delete maskCurveEditorG;
|
||||||
delete mask2CurveEditorG;
|
delete mask2CurveEditorG;
|
||||||
|
delete mask2expCurveEditorG;
|
||||||
delete curveEditorG;
|
delete curveEditorG;
|
||||||
delete maskexpCurveEditorG;
|
delete maskexpCurveEditorG;
|
||||||
delete maskSHCurveEditorG;
|
delete maskSHCurveEditorG;
|
||||||
@ -3174,6 +3192,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pp->locallab.spots.at(pp->locallab.selspot).slomaskexp = slomaskexp->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).slomaskexp = slomaskexp->getValue();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).lapmaskexp = lapmaskexp->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).lapmaskexp = lapmaskexp->getValue();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).softradiusexp = softradiusexp->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).softradiusexp = softradiusexp->getValue();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).Lmaskexpcurve = Lmaskexpshape->getCurve();
|
||||||
|
|
||||||
if (expMethod->get_active_row_number() == 0) {
|
if (expMethod->get_active_row_number() == 0) {
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).expMethod = "std";
|
pp->locallab.spots.at(pp->locallab.selspot).expMethod = "std";
|
||||||
@ -3526,6 +3545,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pe->locallab.spots.at(pp->locallab.selspot).slomaskexp = pe->locallab.spots.at(pp->locallab.selspot).slomaskexp || slomaskexp->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).slomaskexp = pe->locallab.spots.at(pp->locallab.selspot).slomaskexp || slomaskexp->getEditedState();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).lapmaskexp = pe->locallab.spots.at(pp->locallab.selspot).lapmaskexp || lapmaskexp->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).lapmaskexp = pe->locallab.spots.at(pp->locallab.selspot).lapmaskexp || lapmaskexp->getEditedState();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).softradiusexp = pe->locallab.spots.at(pp->locallab.selspot).softradiusexp || softradiusexp->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).softradiusexp = pe->locallab.spots.at(pp->locallab.selspot).softradiusexp || softradiusexp->getEditedState();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).Lmaskexpcurve = pe->locallab.spots.at(pp->locallab.selspot).Lmaskexpcurve || !Lmaskexpshape->isUnChanged();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).expMethod = pe->locallab.spots.at(pp->locallab.selspot).expMethod || expMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
pe->locallab.spots.at(pp->locallab.selspot).expMethod = pe->locallab.spots.at(pp->locallab.selspot).expMethod || expMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).exnoiseMethod = pe->locallab.spots.at(pp->locallab.selspot).exnoiseMethod || exnoiseMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
pe->locallab.spots.at(pp->locallab.selspot).exnoiseMethod = pe->locallab.spots.at(pp->locallab.selspot).exnoiseMethod || exnoiseMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).laplacexp = pe->locallab.spots.at(pp->locallab.selspot).laplacexp || laplacexp->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).laplacexp = pe->locallab.spots.at(pp->locallab.selspot).laplacexp || laplacexp->getEditedState();
|
||||||
@ -3813,6 +3833,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pedited->locallab.spots.at(pp->locallab.selspot).slomaskexp = pedited->locallab.spots.at(pp->locallab.selspot).slomaskexp || slomaskexp->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).slomaskexp = pedited->locallab.spots.at(pp->locallab.selspot).slomaskexp || slomaskexp->getEditedState();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).lapmaskexp = pedited->locallab.spots.at(pp->locallab.selspot).lapmaskexp || lapmaskexp->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).lapmaskexp = pedited->locallab.spots.at(pp->locallab.selspot).lapmaskexp || lapmaskexp->getEditedState();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).softradiusexp = pedited->locallab.spots.at(pp->locallab.selspot).softradiusexp || softradiusexp->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).softradiusexp = pedited->locallab.spots.at(pp->locallab.selspot).softradiusexp || softradiusexp->getEditedState();
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).Lmaskexpcurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmaskexpcurve || !Lmaskexpshape->isUnChanged();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).expMethod = pedited->locallab.spots.at(pp->locallab.selspot).expMethod || expMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
pedited->locallab.spots.at(pp->locallab.selspot).expMethod = pedited->locallab.spots.at(pp->locallab.selspot).expMethod || expMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).exnoiseMethod = pedited->locallab.spots.at(pp->locallab.selspot).exnoiseMethod || exnoiseMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
pedited->locallab.spots.at(pp->locallab.selspot).exnoiseMethod = pedited->locallab.spots.at(pp->locallab.selspot).exnoiseMethod || exnoiseMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).laplacexp = pedited->locallab.spots.at(pp->locallab.selspot).laplacexp || laplacexp->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).laplacexp = pedited->locallab.spots.at(pp->locallab.selspot).laplacexp || laplacexp->getEditedState();
|
||||||
@ -4190,6 +4211,13 @@ void Locallab::curveChanged(CurveEditor* ce)
|
|||||||
listener->panelChanged(EvlocallabHHmaskexpshape, M("HISTORY_CUSTOMCURVE"));
|
listener->panelChanged(EvlocallabHHmaskexpshape, M("HISTORY_CUSTOMCURVE"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ce == Lmaskexpshape) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(EvlocallabLmaskexpshape, M("HISTORY_CUSTOMCURVE"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Shadows Highlight
|
//Shadows Highlight
|
||||||
@ -7884,6 +7912,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
slomaskexp->setValue(pp->locallab.spots.at(index).slomaskexp);
|
slomaskexp->setValue(pp->locallab.spots.at(index).slomaskexp);
|
||||||
lapmaskexp->setValue(pp->locallab.spots.at(index).lapmaskexp);
|
lapmaskexp->setValue(pp->locallab.spots.at(index).lapmaskexp);
|
||||||
softradiusexp->setValue(pp->locallab.spots.at(index).softradiusexp);
|
softradiusexp->setValue(pp->locallab.spots.at(index).softradiusexp);
|
||||||
|
Lmaskexpshape->setCurve(pp->locallab.spots.at(index).Lmaskexpcurve);
|
||||||
|
|
||||||
if (pp->locallab.spots.at(index).expMethod == "std") {
|
if (pp->locallab.spots.at(index).expMethod == "std") {
|
||||||
expMethod->set_active(0);
|
expMethod->set_active(0);
|
||||||
@ -8260,6 +8289,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
slomaskexp->setEditedState(spotState->slomaskexp ? Edited : UnEdited);
|
slomaskexp->setEditedState(spotState->slomaskexp ? Edited : UnEdited);
|
||||||
lapmaskexp->setEditedState(spotState->lapmaskexp ? Edited : UnEdited);
|
lapmaskexp->setEditedState(spotState->lapmaskexp ? Edited : UnEdited);
|
||||||
softradiusexp->setEditedState(spotState->softradiusexp ? Edited : UnEdited);
|
softradiusexp->setEditedState(spotState->softradiusexp ? Edited : UnEdited);
|
||||||
|
Lmaskexpshape->setUnChanged(!spotState->Lmaskexpcurve);
|
||||||
|
|
||||||
if (!spotState->expMethod) {
|
if (!spotState->expMethod) {
|
||||||
expMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
expMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
||||||
|
@ -86,6 +86,8 @@ private:
|
|||||||
// Exposure
|
// Exposure
|
||||||
CurveEditorGroup* const curveEditorG;
|
CurveEditorGroup* const curveEditorG;
|
||||||
CurveEditorGroup* const maskexpCurveEditorG;
|
CurveEditorGroup* const maskexpCurveEditorG;
|
||||||
|
CurveEditorGroup* const mask2expCurveEditorG;
|
||||||
|
DiagonalCurveEditor* Lmaskexpshape;
|
||||||
DiagonalCurveEditor* shapeexpos;
|
DiagonalCurveEditor* shapeexpos;
|
||||||
FlatCurveEditor* CCmaskexpshape;
|
FlatCurveEditor* CCmaskexpshape;
|
||||||
FlatCurveEditor* LLmaskexpshape;
|
FlatCurveEditor* LLmaskexpshape;
|
||||||
|
@ -1034,6 +1034,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
|||||||
locallab.spots.at(j).slomaskexp = locallab.spots.at(j).slomaskexp && pSpot.slomaskexp == otherSpot.slomaskexp;
|
locallab.spots.at(j).slomaskexp = locallab.spots.at(j).slomaskexp && pSpot.slomaskexp == otherSpot.slomaskexp;
|
||||||
locallab.spots.at(j).lapmaskexp = locallab.spots.at(j).lapmaskexp && pSpot.lapmaskexp == otherSpot.lapmaskexp;
|
locallab.spots.at(j).lapmaskexp = locallab.spots.at(j).lapmaskexp && pSpot.lapmaskexp == otherSpot.lapmaskexp;
|
||||||
locallab.spots.at(j).softradiusexp = locallab.spots.at(j).softradiusexp && pSpot.softradiusexp == otherSpot.softradiusexp;
|
locallab.spots.at(j).softradiusexp = locallab.spots.at(j).softradiusexp && pSpot.softradiusexp == otherSpot.softradiusexp;
|
||||||
|
locallab.spots.at(j).Lmaskexpcurve = locallab.spots.at(j).Lmaskexpcurve && pSpot.Lmaskexpcurve == otherSpot.Lmaskexpcurve;
|
||||||
locallab.spots.at(j).expMethod = locallab.spots.at(j).expMethod && pSpot.expMethod == otherSpot.expMethod;
|
locallab.spots.at(j).expMethod = locallab.spots.at(j).expMethod && pSpot.expMethod == otherSpot.expMethod;
|
||||||
locallab.spots.at(j).exnoiseMethod = locallab.spots.at(j).exnoiseMethod && pSpot.exnoiseMethod == otherSpot.exnoiseMethod;
|
locallab.spots.at(j).exnoiseMethod = locallab.spots.at(j).exnoiseMethod && pSpot.exnoiseMethod == otherSpot.exnoiseMethod;
|
||||||
locallab.spots.at(j).laplacexp = locallab.spots.at(j).laplacexp && pSpot.laplacexp == otherSpot.laplacexp;
|
locallab.spots.at(j).laplacexp = locallab.spots.at(j).laplacexp && pSpot.laplacexp == otherSpot.laplacexp;
|
||||||
@ -3018,6 +3019,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
|||||||
toEdit.locallab.spots.at(i).softradiusexp = mods.locallab.spots.at(i).softradiusexp;
|
toEdit.locallab.spots.at(i).softradiusexp = mods.locallab.spots.at(i).softradiusexp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).Lmaskexpcurve) {
|
||||||
|
toEdit.locallab.spots.at(i).Lmaskexpcurve = mods.locallab.spots.at(i).Lmaskexpcurve;
|
||||||
|
}
|
||||||
|
|
||||||
if (locallab.spots.at(i).expMethod) {
|
if (locallab.spots.at(i).expMethod) {
|
||||||
toEdit.locallab.spots.at(i).expMethod = mods.locallab.spots.at(i).expMethod;
|
toEdit.locallab.spots.at(i).expMethod = mods.locallab.spots.at(i).expMethod;
|
||||||
}
|
}
|
||||||
@ -4806,6 +4811,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
|||||||
slomaskexp(v),
|
slomaskexp(v),
|
||||||
lapmaskexp(v),
|
lapmaskexp(v),
|
||||||
softradiusexp(v),
|
softradiusexp(v),
|
||||||
|
Lmaskexpcurve(v),
|
||||||
expMethod(v),
|
expMethod(v),
|
||||||
exnoiseMethod(v),
|
exnoiseMethod(v),
|
||||||
laplacexp(v),
|
laplacexp(v),
|
||||||
@ -5086,6 +5092,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
|||||||
slomaskexp = v;
|
slomaskexp = v;
|
||||||
lapmaskexp = v;
|
lapmaskexp = v;
|
||||||
softradiusexp = v;
|
softradiusexp = v;
|
||||||
|
Lmaskexpcurve = v;
|
||||||
expMethod = v;
|
expMethod = v;
|
||||||
exnoiseMethod = v;
|
exnoiseMethod = v;
|
||||||
laplacexp = v;
|
laplacexp = v;
|
||||||
|
@ -452,6 +452,7 @@ public:
|
|||||||
bool slomaskexp;
|
bool slomaskexp;
|
||||||
bool lapmaskexp;
|
bool lapmaskexp;
|
||||||
bool softradiusexp;
|
bool softradiusexp;
|
||||||
|
bool Lmaskexpcurve;
|
||||||
bool expMethod;
|
bool expMethod;
|
||||||
bool exnoiseMethod;
|
bool exnoiseMethod;
|
||||||
bool laplacexp;
|
bool laplacexp;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user