Prepare mask TM
This commit is contained in:
parent
a5389adbf6
commit
893831c45b
@ -910,6 +910,9 @@ void Crop::update(int todo)
|
|||||||
bool lhmasretiutili = parent->lhmasretiutili;
|
bool lhmasretiutili = parent->lhmasretiutili;
|
||||||
bool lcmasretiutili = parent->lcmasretiutili;
|
bool lcmasretiutili = parent->lcmasretiutili;
|
||||||
bool llmasretiutili = parent->llmasretiutili;
|
bool llmasretiutili = parent->llmasretiutili;
|
||||||
|
bool lhmastmutili = parent->lhmastmutili;
|
||||||
|
bool lcmastmutili = parent->lcmastmutili;
|
||||||
|
bool llmastmutili = parent->llmastmutili;
|
||||||
|
|
||||||
// float avg = parent->avg;
|
// float avg = parent->avg;
|
||||||
LUTu dummy;
|
LUTu dummy;
|
||||||
@ -932,6 +935,9 @@ void Crop::update(int todo)
|
|||||||
LocCCmaskretiCurve locccmasretiCurve;
|
LocCCmaskretiCurve locccmasretiCurve;
|
||||||
LocLLmaskretiCurve locllmasretiCurve;
|
LocLLmaskretiCurve locllmasretiCurve;
|
||||||
LocHHmaskretiCurve lochhmasretiCurve;
|
LocHHmaskretiCurve lochhmasretiCurve;
|
||||||
|
LocCCmasktmCurve locccmastmCurve;
|
||||||
|
LocLLmasktmCurve locllmastmCurve;
|
||||||
|
LocHHmasktmCurve lochhmastmCurve;
|
||||||
|
|
||||||
LocretigainCurverab locRETgainCurverab;
|
LocretigainCurverab locRETgainCurverab;
|
||||||
locallutili = false;
|
locallutili = false;
|
||||||
@ -960,6 +966,9 @@ void Crop::update(int todo)
|
|||||||
locccmasretiCurve.Set(params.locallab.spots.at(sp).CCmaskreticurve, lcmasretiutili);
|
locccmasretiCurve.Set(params.locallab.spots.at(sp).CCmaskreticurve, lcmasretiutili);
|
||||||
locllmasretiCurve.Set(params.locallab.spots.at(sp).LLmaskreticurve, llmasretiutili);
|
locllmasretiCurve.Set(params.locallab.spots.at(sp).LLmaskreticurve, llmasretiutili);
|
||||||
lochhmasretiCurve.Set(params.locallab.spots.at(sp).HHmaskreticurve, lhmasretiutili);
|
lochhmasretiCurve.Set(params.locallab.spots.at(sp).HHmaskreticurve, lhmasretiutili);
|
||||||
|
locccmastmCurve.Set(params.locallab.spots.at(sp).CCmasktmcurve, lcmastmutili);
|
||||||
|
locllmastmCurve.Set(params.locallab.spots.at(sp).LLmasktmcurve, llmastmutili);
|
||||||
|
lochhmastmCurve.Set(params.locallab.spots.at(sp).HHmasktmcurve, lhmastmutili);
|
||||||
locallutili = false;
|
locallutili = false;
|
||||||
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve2, sca);
|
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve2, sca);
|
||||||
localcutili = false;
|
localcutili = false;
|
||||||
@ -995,14 +1004,16 @@ void Crop::update(int todo)
|
|||||||
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,
|
||||||
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, parent->locallColorMask, parent->locallExpMask, parent->locallSHMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask);
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
|
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, parent->locallColorMask, parent->locallExpMask, parent->locallSHMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask);
|
||||||
} 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, lllocalcurve2,locallutili,
|
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, lllocalcurve2,locallutili,
|
||||||
loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
loclhCurve, lochhCurve, 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,
|
||||||
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0);
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
|
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
lllocalcurve2.clear();
|
lllocalcurve2.clear();
|
||||||
lightCurveloc2.clear();
|
lightCurveloc2.clear();
|
||||||
@ -1029,6 +1040,9 @@ void Crop::update(int todo)
|
|||||||
locllmasretiCurve.Reset();
|
locllmasretiCurve.Reset();
|
||||||
locccmasretiCurve.Reset();
|
locccmasretiCurve.Reset();
|
||||||
lochhmasretiCurve.Reset();
|
lochhmasretiCurve.Reset();
|
||||||
|
locllmastmCurve.Reset();
|
||||||
|
locccmastmCurve.Reset();
|
||||||
|
lochhmastmCurve.Reset();
|
||||||
|
|
||||||
if (skip <= 2) {
|
if (skip <= 2) {
|
||||||
usleep(settings->cropsleep); //wait to avoid crash when crop 100% and move window
|
usleep(settings->cropsleep); //wait to avoid crash when crop 100% and move window
|
||||||
|
@ -901,6 +901,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lcmasretiutili = false;
|
lcmasretiutili = false;
|
||||||
lhmasretiutili = false;
|
lhmasretiutili = false;
|
||||||
llmasretiutili = false;
|
llmasretiutili = false;
|
||||||
|
lcmastmutili = false;
|
||||||
|
lhmastmutili = false;
|
||||||
|
llmastmutili = false;
|
||||||
lhmasutili = false;
|
lhmasutili = false;
|
||||||
lcmasutili = false;
|
lcmasutili = false;
|
||||||
locRETgainCurve.Set(params->locallab.spots.at(sp).localTgaincurve);
|
locRETgainCurve.Set(params->locallab.spots.at(sp).localTgaincurve);
|
||||||
@ -921,6 +924,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locllmasretiCurve.Set(params->locallab.spots.at(sp).LLmaskreticurve, llmasretiutili);
|
locllmasretiCurve.Set(params->locallab.spots.at(sp).LLmaskreticurve, llmasretiutili);
|
||||||
locccmasretiCurve.Set(params->locallab.spots.at(sp).CCmaskreticurve, lcmasretiutili);
|
locccmasretiCurve.Set(params->locallab.spots.at(sp).CCmaskreticurve, lcmasretiutili);
|
||||||
lochhmasretiCurve.Set(params->locallab.spots.at(sp).HHmaskreticurve, lhmasretiutili);
|
lochhmasretiCurve.Set(params->locallab.spots.at(sp).HHmaskreticurve, lhmasretiutili);
|
||||||
|
locllmastmCurve.Set(params->locallab.spots.at(sp).LLmasktmcurve, llmastmutili);
|
||||||
|
locccmastmCurve.Set(params->locallab.spots.at(sp).CCmasktmcurve, lcmastmutili);
|
||||||
|
lochhmastmCurve.Set(params->locallab.spots.at(sp).HHmasktmcurve, lhmastmutili);
|
||||||
CurveFactory::curveLocal(locallutili, params->locallab.spots.at(sp).llcurve, lllocalcurve, sca);
|
CurveFactory::curveLocal(locallutili, params->locallab.spots.at(sp).llcurve, lllocalcurve, sca);
|
||||||
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);
|
||||||
@ -969,13 +975,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
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,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, locallColorMask, locallExpMask, locallSHMask, locallcbMask, locallretiMask, locallsoftMask);
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
|
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, locallColorMask, locallExpMask, locallSHMask, locallcbMask, locallretiMask, locallsoftMask, localltmMask);
|
||||||
} else {
|
} else {
|
||||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, lllocalcurve, locallutili, loclhCurve, lochhCurve, 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,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, 0, 0, 0, 0, 0, 0);
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
|
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, 0, 0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
//recalculate references after
|
//recalculate references after
|
||||||
if (params->locallab.spots.at(sp).spotMethod == "exc") {
|
if (params->locallab.spots.at(sp).spotMethod == "exc") {
|
||||||
@ -1009,6 +1017,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locllmasretiCurve.Reset();
|
locllmasretiCurve.Reset();
|
||||||
locccmasretiCurve.Reset();
|
locccmasretiCurve.Reset();
|
||||||
lochhmasretiCurve.Reset();
|
lochhmasretiCurve.Reset();
|
||||||
|
locllmastmCurve.Reset();
|
||||||
|
locccmastmCurve.Reset();
|
||||||
|
lochhmastmCurve.Reset();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -251,6 +251,9 @@ protected:
|
|||||||
LocCCmaskretiCurve locccmasretiCurve;
|
LocCCmaskretiCurve locccmasretiCurve;
|
||||||
LocLLmaskretiCurve locllmasretiCurve;
|
LocLLmaskretiCurve locllmasretiCurve;
|
||||||
LocHHmaskretiCurve lochhmasretiCurve;
|
LocHHmaskretiCurve lochhmasretiCurve;
|
||||||
|
LocCCmasktmCurve locccmastmCurve;
|
||||||
|
LocLLmasktmCurve locllmastmCurve;
|
||||||
|
LocHHmasktmCurve lochhmastmCurve;
|
||||||
|
|
||||||
bool locallutili;
|
bool locallutili;
|
||||||
bool localcutili;
|
bool localcutili;
|
||||||
@ -270,6 +273,9 @@ protected:
|
|||||||
bool lcmasretiutili;
|
bool lcmasretiutili;
|
||||||
bool lhmasretiutili;
|
bool lhmasretiutili;
|
||||||
bool llmasretiutili;
|
bool llmasretiutili;
|
||||||
|
bool lcmastmutili;
|
||||||
|
bool lhmastmutili;
|
||||||
|
bool llmastmutili;
|
||||||
bool LHutili;
|
bool LHutili;
|
||||||
bool HHutili;
|
bool HHutili;
|
||||||
LUTf huerefs;
|
LUTf huerefs;
|
||||||
|
@ -314,7 +314,8 @@ public:
|
|||||||
const LocCCmaskSHCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskSHCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskSHCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskSHCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskSHCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskSHCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
const LocCCmaskcbCurve & locccmascbCurve, bool &lcmascbutili, const LocLLmaskcbCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskcbCurve & lochhmascbCurve, bool & lhmascbutili,
|
const LocCCmaskcbCurve & locccmascbCurve, bool &lcmascbutili, const LocLLmaskcbCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskcbCurve & lochhmascbCurve, bool & lhmascbutili,
|
||||||
const LocCCmaskretiCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskretiCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskretiCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
const LocCCmaskretiCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskretiCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskretiCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
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 llExpMask, int llSHMask, int llcbMask, int llretiMask, int llsoftMask);
|
const LocCCmasktmCurve & locccmastmCurve, bool &lcmastmutili, const LocLLmasktmCurve & locllmastmCurve, bool &llmastmutili, const LocHHmasktmCurve & lochhmastmCurve, bool & lhmastmutili,
|
||||||
|
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 llExpMask, int llSHMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask);
|
||||||
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);
|
||||||
void BlurNoise_Localold(int call, const struct local_params& lp, LabImage* original, LabImage* transformed, const LabImage* const tmp1, int cx, int cy);
|
void BlurNoise_Localold(int call, const struct local_params& lp, LabImage* original, LabImage* transformed, const LabImage* const tmp1, int cx, int cy);
|
||||||
void InverseBlurNoise_Local(const struct local_params& lp, const float hueref, const float chromaref, const float lumaref, LabImage* original, LabImage* transformed, const LabImage* const tmp1, int cx, int cy, int sk);
|
void InverseBlurNoise_Local(const struct local_params& lp, const float hueref, const float chromaref, const float lumaref, LabImage* original, LabImage* transformed, const LabImage* const tmp1, int cx, int cy, int sk);
|
||||||
|
@ -219,6 +219,11 @@ struct local_params {
|
|||||||
float chromacbm;
|
float chromacbm;
|
||||||
float gammacb;
|
float gammacb;
|
||||||
float slomacb;
|
float slomacb;
|
||||||
|
float radmatm;
|
||||||
|
float blendmatm;
|
||||||
|
float chromatm;
|
||||||
|
float gammatm;
|
||||||
|
float slomatm;
|
||||||
float struexp;
|
float struexp;
|
||||||
float blurexp;
|
float blurexp;
|
||||||
float blurcol;
|
float blurcol;
|
||||||
@ -260,6 +265,7 @@ struct local_params {
|
|||||||
int showmaskcbmet;
|
int showmaskcbmet;
|
||||||
int showmaskretimet;
|
int showmaskretimet;
|
||||||
int showmasksoftmet;
|
int showmasksoftmet;
|
||||||
|
int showmasktmmet;
|
||||||
float laplacexp;
|
float laplacexp;
|
||||||
float balanexp;
|
float balanexp;
|
||||||
float linear;
|
float linear;
|
||||||
@ -317,6 +323,7 @@ struct local_params {
|
|||||||
bool enacbMask;
|
bool enacbMask;
|
||||||
bool enaretiMask;
|
bool enaretiMask;
|
||||||
bool enaretiMasktmap;
|
bool enaretiMasktmap;
|
||||||
|
bool enatmMask;
|
||||||
int highlihs;
|
int highlihs;
|
||||||
int shadowhs;
|
int shadowhs;
|
||||||
int radiushs;
|
int radiushs;
|
||||||
@ -410,7 +417,7 @@ static void SobelCannyLuma(float **sobelL, float **luma, int bfw, int bfh, float
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, int llColorMask, int llExpMask, int llSHMask, int llcbMask, int llretiMask, int llsoftMask)
|
static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, int llColorMask, int llExpMask, int llSHMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask)
|
||||||
{
|
{
|
||||||
int w = oW;
|
int w = oW;
|
||||||
int h = oH;
|
int h = oH;
|
||||||
@ -487,11 +494,13 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.showmaskcbmet = llcbMask;
|
lp.showmaskcbmet = llcbMask;
|
||||||
lp.showmaskretimet = llretiMask;
|
lp.showmaskretimet = llretiMask;
|
||||||
lp.showmasksoftmet = llsoftMask;
|
lp.showmasksoftmet = llsoftMask;
|
||||||
//if(locallab.spots.at(sp).enaretiMask) printf("enaritrue\n"); else printf("enaritfalse\n");
|
lp.showmasktmmet = lltmMask;
|
||||||
lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llColorMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
// printf("lpshmasktm=%i\n",lp.showmasktmmet);
|
||||||
lp.enaSHMask = locallab.spots.at(sp).enaSHMask && llSHMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0;
|
lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llColorMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
||||||
lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0;
|
lp.enaSHMask = locallab.spots.at(sp).enaSHMask && llSHMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0;
|
||||||
lp.enaretiMask = locallab.spots.at(sp).enaretiMask && llretiMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0;
|
lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0;
|
||||||
|
lp.enaretiMask = locallab.spots.at(sp).enaretiMask && llretiMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lltmMask == 0;
|
||||||
|
lp.enatmMask = locallab.spots.at(sp).enatmMask && lltmMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0;
|
||||||
// if(lp.enaretiMask) printf("lp.enaretiMasktrue\n"); else printf("lp.enaretiMaskfalse\n");
|
// if(lp.enaretiMask) printf("lp.enaretiMasktrue\n"); else printf("lp.enaretiMaskfalse\n");
|
||||||
|
|
||||||
if (locallab.spots.at(sp).softMethod == "soft") {
|
if (locallab.spots.at(sp).softMethod == "soft") {
|
||||||
@ -633,6 +642,12 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
float slomaskcb = ((float) locallab.spots.at(sp).slomaskcb);
|
float slomaskcb = ((float) locallab.spots.at(sp).slomaskcb);
|
||||||
bool enaretiMasktm = locallab.spots.at(sp).enaretiMasktmap;
|
bool enaretiMasktm = locallab.spots.at(sp).enaretiMasktmap;
|
||||||
lp.enaretiMasktmap = enaretiMasktm;
|
lp.enaretiMasktmap = enaretiMasktm;
|
||||||
|
float blendmasktm = ((float) locallab.spots.at(sp).blendmasktm) / 100.f ;
|
||||||
|
float radmasktm = ((float) locallab.spots.at(sp).radmasktm);
|
||||||
|
float chromasktm = ((float) locallab.spots.at(sp).chromasktm);
|
||||||
|
float gammasktm = ((float) locallab.spots.at(sp).gammasktm);
|
||||||
|
float slomasktm = ((float) locallab.spots.at(sp).slomasktm);
|
||||||
|
|
||||||
lp.scalereti = scaleret;
|
lp.scalereti = scaleret;
|
||||||
lp.cir = circr;
|
lp.cir = circr;
|
||||||
lp.actsp = acti;
|
lp.actsp = acti;
|
||||||
@ -673,6 +688,11 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.chromacbm = chromaskcb;
|
lp.chromacbm = chromaskcb;
|
||||||
lp.gammacb = gammaskcb;
|
lp.gammacb = gammaskcb;
|
||||||
lp.slomacb = slomaskcb;
|
lp.slomacb = slomaskcb;
|
||||||
|
lp.blendmatm = blendmasktm;
|
||||||
|
lp.radmatm = radmasktm;
|
||||||
|
lp.chromatm = chromasktm;
|
||||||
|
lp.gammatm = gammasktm;
|
||||||
|
lp.slomatm = slomasktm;
|
||||||
|
|
||||||
lp.struexp = structexpo;
|
lp.struexp = structexpo;
|
||||||
lp.blurexp = blurexpo;
|
lp.blurexp = blurexpo;
|
||||||
@ -3549,7 +3569,7 @@ void ImProcFunctions::calc_ref(int sp, LabImage * original, LabImage * transform
|
|||||||
if (params->locallab.enabled) {
|
if (params->locallab.enabled) {
|
||||||
//always calculate hueref, chromaref, lumaref before others operations use in normal mode for all modules exceprt denoise
|
//always calculate hueref, chromaref, lumaref before others operations use in normal mode for all modules exceprt denoise
|
||||||
struct local_params lp;
|
struct local_params lp;
|
||||||
calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0);
|
calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0);
|
||||||
int begy = lp.yc - lp.lyT;
|
int begy = lp.yc - lp.lyT;
|
||||||
int begx = lp.xc - lp.lxL;
|
int begx = lp.xc - lp.lxL;
|
||||||
int yEn = lp.yc + lp.ly;
|
int yEn = lp.yc + lp.ly;
|
||||||
@ -4873,7 +4893,8 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
const LocCCmaskSHCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskSHCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskSHCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskSHCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskSHCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskSHCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
const LocCCmaskcbCurve & locccmascbCurve, bool &lcmascbutili, const LocLLmaskcbCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskcbCurve & lochhmascbCurve, bool & lhmascbutili,
|
const LocCCmaskcbCurve & locccmascbCurve, bool &lcmascbutili, const LocLLmaskcbCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskcbCurve & lochhmascbCurve, bool & lhmascbutili,
|
||||||
const LocCCmaskretiCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskretiCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskretiCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
const LocCCmaskretiCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskretiCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskretiCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
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 llExpMask, int llSHMask, int llcbMask, int llretiMask, int llsoftMask)
|
const LocCCmasktmCurve & locccmastmCurve, bool &lcmastmutili, const LocLLmasktmCurve & locllmastmCurve, bool &llmastmutili, const LocHHmasktmCurve & lochhmastmCurve, bool & lhmastmutili,
|
||||||
|
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 llExpMask, int llSHMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask)
|
||||||
{
|
{
|
||||||
/* 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
|
||||||
@ -4903,7 +4924,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
int del = 3; // to avoid crash with [loy - begy] and [lox - begx] and bfh bfw // with gtk2 [loy - begy-1] [lox - begx -1 ] and del = 1
|
int del = 3; // to avoid crash with [loy - begy] and [lox - begx] and bfh bfw // with gtk2 [loy - begy-1] [lox - begx -1 ] and del = 1
|
||||||
|
|
||||||
struct local_params lp;
|
struct local_params lp;
|
||||||
calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llExpMask, llSHMask, llcbMask, llretiMask, llsoftMask);
|
calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llExpMask, llSHMask, llcbMask, llretiMask, llsoftMask, lltmMask);
|
||||||
|
|
||||||
const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip
|
const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip
|
||||||
int strred = 1;//(lp.strucc - 1);
|
int strred = 1;//(lp.strucc - 1);
|
||||||
|
@ -1106,6 +1106,9 @@ private:
|
|||||||
LocCCmaskretiCurve locccmasretiCurve;
|
LocCCmaskretiCurve locccmasretiCurve;
|
||||||
LocLLmaskretiCurve locllmasretiCurve;
|
LocLLmaskretiCurve locllmasretiCurve;
|
||||||
LocHHmaskretiCurve lochhmasretiCurve;
|
LocHHmaskretiCurve lochhmasretiCurve;
|
||||||
|
LocCCmasktmCurve locccmastmCurve;
|
||||||
|
LocLLmasktmCurve locllmastmCurve;
|
||||||
|
LocHHmasktmCurve lochhmastmCurve;
|
||||||
LUTf lllocalcurve(65536, 0);
|
LUTf lllocalcurve(65536, 0);
|
||||||
LUTf cclocalcurve(65536, 0);
|
LUTf cclocalcurve(65536, 0);
|
||||||
LUTf hltonecurveloc(65536, 0);
|
LUTf hltonecurveloc(65536, 0);
|
||||||
@ -1145,6 +1148,9 @@ private:
|
|||||||
bool lcmasretiutili = false;
|
bool lcmasretiutili = false;
|
||||||
bool lhmasretiutili = false;
|
bool lhmasretiutili = false;
|
||||||
bool llmasretiutili = false;
|
bool llmasretiutili = false;
|
||||||
|
bool lcmastmutili = false;
|
||||||
|
bool lhmastmutili = false;
|
||||||
|
bool llmastmutili = false;
|
||||||
bool lcmasutili = false;
|
bool lcmasutili = false;
|
||||||
bool lhmasutili = false;
|
bool lhmasutili = false;
|
||||||
locRETgainCurve.Set(params.locallab.spots.at(sp).localTgaincurve);
|
locRETgainCurve.Set(params.locallab.spots.at(sp).localTgaincurve);
|
||||||
@ -1165,6 +1171,9 @@ private:
|
|||||||
locccmasretiCurve.Set(params.locallab.spots.at(sp).CCmaskreticurve, lcmasretiutili);
|
locccmasretiCurve.Set(params.locallab.spots.at(sp).CCmaskreticurve, lcmasretiutili);
|
||||||
locllmasretiCurve.Set(params.locallab.spots.at(sp).LLmaskreticurve, llmasretiutili);
|
locllmasretiCurve.Set(params.locallab.spots.at(sp).LLmaskreticurve, llmasretiutili);
|
||||||
lochhmasretiCurve.Set(params.locallab.spots.at(sp).HHmaskreticurve, lhmasretiutili);
|
lochhmasretiCurve.Set(params.locallab.spots.at(sp).HHmaskreticurve, lhmasretiutili);
|
||||||
|
locccmastmCurve.Set(params.locallab.spots.at(sp).CCmasktmcurve, lcmastmutili);
|
||||||
|
locllmastmCurve.Set(params.locallab.spots.at(sp).LLmasktmcurve, llmastmutili);
|
||||||
|
lochhmastmCurve.Set(params.locallab.spots.at(sp).HHmasktmcurve, lhmastmutili);
|
||||||
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve, 1);
|
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve, 1);
|
||||||
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);
|
||||||
@ -1194,7 +1203,8 @@ private:
|
|||||||
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,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0);
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili,
|
||||||
|
LHutili, HHutili, cclocalcurve, localcutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, 0, 0, 0, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
// Clear local curves
|
// Clear local curves
|
||||||
|
Loading…
x
Reference in New Issue
Block a user