Added mask to local contrast
This commit is contained in:
parent
ba750b22a7
commit
46b9aa95e2
@ -1106,6 +1106,14 @@ HISTORY_MSG_865;Local - Contrast Anchor
|
|||||||
HISTORY_MSG_867;Local - Contrast Amount residual
|
HISTORY_MSG_867;Local - Contrast Amount residual
|
||||||
HISTORY_MSG_868;Local - balance ΔE C-H
|
HISTORY_MSG_868;Local - balance ΔE C-H
|
||||||
HISTORY_MSG_869;Local - denoise curve luminance
|
HISTORY_MSG_869;Local - denoise curve luminance
|
||||||
|
HISTORY_MSG_870;Local - LC mask curve LC(H)
|
||||||
|
HISTORY_MSG_871;Local - LC mask curve C(C)
|
||||||
|
HISTORY_MSG_872;Local - LC mask curve L(L)
|
||||||
|
HISTORY_MSG_873;Local - LC mask enable
|
||||||
|
HISTORY_MSG_875;Local - LC mask blend
|
||||||
|
HISTORY_MSG_876;Local - LC mask radius
|
||||||
|
HISTORY_MSG_877;Local - LC mask chroma
|
||||||
|
HISTORY_MSG_878;Local - LC mask curve contrast
|
||||||
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
|
||||||
@ -2513,12 +2521,13 @@ TP_LOCALLAB_SHARRADIUS;Radius
|
|||||||
TP_LOCALLAB_SHORTC;Short Curves 'L' Mask
|
TP_LOCALLAB_SHORTC;Short Curves 'L' Mask
|
||||||
TP_LOCALLAB_SHORTCMASK_TOOLTIP;Short circuit the 2 curves L(L) and L(H).\nAllows you to mix the current image with the original image modified by the mask job.\nUsable with masks 2, 3, 4, 6, 7
|
TP_LOCALLAB_SHORTCMASK_TOOLTIP;Short circuit the 2 curves L(L) and L(H).\nAllows you to mix the current image with the original image modified by the mask job.\nUsable with masks 2, 3, 4, 6, 7
|
||||||
TP_LOCALLAB_SHOWC1;Merge file
|
TP_LOCALLAB_SHOWC1;Merge file
|
||||||
TP_LOCALLAB_SHOWC;8+* - Mask and modifications
|
TP_LOCALLAB_SHOWC;9+* - Mask and modifications
|
||||||
TP_LOCALLAB_SHOWCB;2+ - Mask and modifications
|
TP_LOCALLAB_SHOWCB;2+ - Mask and modifications
|
||||||
TP_LOCALLAB_SHOWDCT;Show process Fourier
|
TP_LOCALLAB_SHOWDCT;Show process Fourier
|
||||||
TP_LOCALLAB_SHOWE;7+ - Mask and modifications
|
TP_LOCALLAB_SHOWE;8+ - Mask and modifications
|
||||||
TP_LOCALLAB_SHOWFOURIER;Fourier (dct)
|
TP_LOCALLAB_SHOWFOURIER;Fourier (dct)
|
||||||
TP_LOCALLAB_SHOWLAPLACE;∆ Laplacian (first)
|
TP_LOCALLAB_SHOWLAPLACE;∆ Laplacian (first)
|
||||||
|
TP_LOCALLAB_SHOWLC;6 - Mask and modifications
|
||||||
TP_LOCALLAB_SHOWMASK;Show mask
|
TP_LOCALLAB_SHOWMASK;Show mask
|
||||||
TP_LOCALLAB_SHOWMASKCOL_TOOLTIP;Display modifications.\nBeware, you can only view one modification (color and light or Exposure or Shadows-Highlight or TM or CBDL or Retinex MSR or Blur).\n\nUse Mask is before algorihtm shape detection
|
TP_LOCALLAB_SHOWMASKCOL_TOOLTIP;Display modifications.\nBeware, you can only view one modification (color and light or Exposure or Shadows-Highlight or TM or CBDL or Retinex MSR or Blur).\n\nUse Mask is before algorihtm shape detection
|
||||||
TP_LOCALLAB_SHOWMASKSOFT_TOOLTIP;Show process Fourier:\nShows the different stages of the process.\nLaplace - builds the second derivative according to the threshold (first step).\nFourier -shows the transformed Laplacian with DCT.\nPoisson - show solution of Poisson DCE.\nNormalize - show result whithout normalization luminance.
|
TP_LOCALLAB_SHOWMASKSOFT_TOOLTIP;Show process Fourier:\nShows the different stages of the process.\nLaplace - builds the second derivative according to the threshold (first step).\nFourier -shows the transformed Laplacian with DCT.\nPoisson - show solution of Poisson DCE.\nNormalize - show result whithout normalization luminance.
|
||||||
@ -2528,7 +2537,7 @@ TP_LOCALLAB_SHOWMODIFMASK;Show modifications whith mask
|
|||||||
TP_LOCALLAB_SHOWNORMAL;Normalize luminance (no)
|
TP_LOCALLAB_SHOWNORMAL;Normalize luminance (no)
|
||||||
TP_LOCALLAB_SHOWPLUS;1+* - Mask and modifications - Smooth-Blur & Denoise
|
TP_LOCALLAB_SHOWPLUS;1+* - Mask and modifications - Smooth-Blur & Denoise
|
||||||
TP_LOCALLAB_SHOWPOISSON;Poisson (pde)
|
TP_LOCALLAB_SHOWPOISSON;Poisson (pde)
|
||||||
TP_LOCALLAB_SHOWR;6 - Mask and modifications
|
TP_LOCALLAB_SHOWR;7 - Mask and modifications
|
||||||
TP_LOCALLAB_SHOWS;5+* - Mask and modifications
|
TP_LOCALLAB_SHOWS;5+* - Mask and modifications
|
||||||
TP_LOCALLAB_SHOWSTRUC;Show structure Spot
|
TP_LOCALLAB_SHOWSTRUC;Show structure Spot
|
||||||
TP_LOCALLAB_SHOWSTRUCEX;Show structure Spot - disabled in "normal"
|
TP_LOCALLAB_SHOWSTRUCEX;Show structure Spot - disabled in "normal"
|
||||||
|
@ -887,6 +887,7 @@ void Crop::update(int todo)
|
|||||||
bool localmaskretiutili = parent->localmaskretiutili;
|
bool localmaskretiutili = parent->localmaskretiutili;
|
||||||
bool localmaskcbutili = parent->localmaskcbutili;
|
bool localmaskcbutili = parent->localmaskcbutili;
|
||||||
bool localmaskblutili = parent->localmaskblutili;
|
bool localmaskblutili = parent->localmaskblutili;
|
||||||
|
bool localmasklcutili = parent->localmasklcutili;
|
||||||
LUTf lmasklocalcurve2(65536, 0);
|
LUTf lmasklocalcurve2(65536, 0);
|
||||||
LUTf lmaskexplocalcurve2(65536, 0);
|
LUTf lmaskexplocalcurve2(65536, 0);
|
||||||
LUTf lmaskSHlocalcurve2(65536, 0);
|
LUTf lmaskSHlocalcurve2(65536, 0);
|
||||||
@ -895,6 +896,7 @@ void Crop::update(int todo)
|
|||||||
LUTf lmaskretilocalcurve2(65536, 0);
|
LUTf lmaskretilocalcurve2(65536, 0);
|
||||||
LUTf lmaskcblocalcurve2(65536, 0);
|
LUTf lmaskcblocalcurve2(65536, 0);
|
||||||
LUTf lmaskbllocalcurve2(65536, 0);
|
LUTf lmaskbllocalcurve2(65536, 0);
|
||||||
|
LUTf lmasklclocalcurve2(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);
|
||||||
@ -914,6 +916,9 @@ void Crop::update(int todo)
|
|||||||
bool lhmasvibutili = parent->lhmasvibutili;
|
bool lhmasvibutili = parent->lhmasvibutili;
|
||||||
bool lcmasvibutili = parent->lcmasvibutili;
|
bool lcmasvibutili = parent->lcmasvibutili;
|
||||||
bool llmasvibutili = parent->llmasvibutili;
|
bool llmasvibutili = parent->llmasvibutili;
|
||||||
|
bool lhmaslcutili = parent->lhmaslcutili;
|
||||||
|
bool lcmaslcutili = parent->lcmaslcutili;
|
||||||
|
bool llmaslcutili = parent->llmaslcutili;
|
||||||
bool lhmascbutili = parent->lhmascbutili;
|
bool lhmascbutili = parent->lhmascbutili;
|
||||||
bool lcmascbutili = parent->lcmascbutili;
|
bool lcmascbutili = parent->lcmascbutili;
|
||||||
bool llmascbutili = parent->llmascbutili;
|
bool llmascbutili = parent->llmascbutili;
|
||||||
@ -955,6 +960,9 @@ void Crop::update(int todo)
|
|||||||
LocCCmaskCurve locccmasvibCurve;
|
LocCCmaskCurve locccmasvibCurve;
|
||||||
LocLLmaskCurve locllmasvibCurve;
|
LocLLmaskCurve locllmasvibCurve;
|
||||||
LocHHmaskCurve lochhmasvibCurve;
|
LocHHmaskCurve lochhmasvibCurve;
|
||||||
|
LocCCmaskCurve locccmaslcCurve;
|
||||||
|
LocLLmaskCurve locllmaslcCurve;
|
||||||
|
LocHHmaskCurve lochhmaslcCurve;
|
||||||
LocCCmaskCurve locccmascbCurve;
|
LocCCmaskCurve locccmascbCurve;
|
||||||
LocLLmaskCurve locllmascbCurve;
|
LocLLmaskCurve locllmascbCurve;
|
||||||
LocHHmaskCurve lochhmascbCurve;
|
LocHHmaskCurve lochhmascbCurve;
|
||||||
@ -1012,9 +1020,12 @@ void Crop::update(int todo)
|
|||||||
lochhmastmCurve.Set(params.locallab.spots.at(sp).HHmasktmcurve, lhmastmutili);
|
lochhmastmCurve.Set(params.locallab.spots.at(sp).HHmasktmcurve, lhmastmutili);
|
||||||
locccmasblCurve.Set(params.locallab.spots.at(sp).CCmaskblcurve, lcmasblutili);
|
locccmasblCurve.Set(params.locallab.spots.at(sp).CCmaskblcurve, lcmasblutili);
|
||||||
locllmasblCurve.Set(params.locallab.spots.at(sp).LLmaskblcurve, llmasblutili);
|
locllmasblCurve.Set(params.locallab.spots.at(sp).LLmaskblcurve, llmasblutili);
|
||||||
lochhmasblCurve.Set(params.locallab.spots.at(sp).HHmaskblcurve, lhmastmutili);
|
lochhmasblCurve.Set(params.locallab.spots.at(sp).HHmaskblcurve, lhmasblutili);
|
||||||
loclmasCurveblwav.Set(params.locallab.spots.at(sp).LLmaskblcurvewav, lmasutiliblwav);
|
loclmasCurveblwav.Set(params.locallab.spots.at(sp).LLmaskblcurvewav, lmasutiliblwav);
|
||||||
loclmasCurvecolwav.Set(params.locallab.spots.at(sp).LLmaskcolcurvewav, lmasutilicolwav);
|
loclmasCurvecolwav.Set(params.locallab.spots.at(sp).LLmaskcolcurvewav, lmasutilicolwav);
|
||||||
|
locccmaslcCurve.Set(params.locallab.spots.at(sp).CCmasklccurve, lcmaslcutili);
|
||||||
|
locllmaslcCurve.Set(params.locallab.spots.at(sp).LLmasklccurve, llmaslcutili);
|
||||||
|
lochhmaslcCurve.Set(params.locallab.spots.at(sp).HHmasklccurve, lhmaslcutili);
|
||||||
|
|
||||||
locwavCurve.Set(params.locallab.spots.at(sp).locwavcurve, locwavutili);
|
locwavCurve.Set(params.locallab.spots.at(sp).locwavcurve, locwavutili);
|
||||||
locwavCurveden.Set(params.locallab.spots.at(sp).locwavcurveden, locwavdenutili);
|
locwavCurveden.Set(params.locallab.spots.at(sp).locwavcurveden, locwavdenutili);
|
||||||
@ -1047,8 +1058,8 @@ void Crop::update(int todo)
|
|||||||
CurveFactory::curvemaskLocal(localmaskretiutili, params.locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmaskretiutili, params.locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve2, sca);
|
||||||
localmaskcbutili = false;
|
localmaskcbutili = false;
|
||||||
CurveFactory::curvemaskLocal(localmaskcbutili, params.locallab.spots.at(sp).Lmaskcbcurve, lmaskcblocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmaskcbutili, params.locallab.spots.at(sp).Lmaskcbcurve, lmaskcblocalcurve2, sca);
|
||||||
localmaskblutili = false;
|
localmasklcutili = false;
|
||||||
CurveFactory::curvemaskLocal(localmaskblutili, params.locallab.spots.at(sp).Lmaskblcurve, lmaskbllocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmasklcutili, params.locallab.spots.at(sp).Lmasklccurve, lmasklclocalcurve2, sca);
|
||||||
|
|
||||||
|
|
||||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||||
@ -1102,6 +1113,7 @@ void Crop::update(int todo)
|
|||||||
lmaskretilocalcurve2, localmaskretiutili,
|
lmaskretilocalcurve2, localmaskretiutili,
|
||||||
lmaskcblocalcurve2, localmaskcbutili,
|
lmaskcblocalcurve2, localmaskcbutili,
|
||||||
lmaskbllocalcurve2, localmaskblutili,
|
lmaskbllocalcurve2, localmaskblutili,
|
||||||
|
lmasklclocalcurve2, localmasklcutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
||||||
@ -1109,6 +1121,7 @@ void Crop::update(int todo)
|
|||||||
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,
|
||||||
|
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili,
|
||||||
loclmasCurveblwav,lmasutiliblwav,
|
loclmasCurveblwav,lmasutiliblwav,
|
||||||
loclmasCurvecolwav,lmasutilicolwav,
|
loclmasCurvecolwav,lmasutilicolwav,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
@ -1137,6 +1150,7 @@ void Crop::update(int todo)
|
|||||||
lmaskretilocalcurve2, localmaskretiutili,
|
lmaskretilocalcurve2, localmaskretiutili,
|
||||||
lmaskcblocalcurve2, localmaskcbutili,
|
lmaskcblocalcurve2, localmaskcbutili,
|
||||||
lmaskbllocalcurve2, localmaskblutili,
|
lmaskbllocalcurve2, localmaskblutili,
|
||||||
|
lmasklclocalcurve2, localmasklcutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili,lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili,lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
||||||
@ -1144,6 +1158,7 @@ void Crop::update(int todo)
|
|||||||
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,
|
||||||
|
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili,
|
||||||
loclmasCurveblwav,lmasutiliblwav,
|
loclmasCurveblwav,lmasutiliblwav,
|
||||||
loclmasCurvecolwav,lmasutilicolwav,
|
loclmasCurvecolwav,lmasutilicolwav,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
@ -1205,6 +1220,9 @@ void Crop::update(int todo)
|
|||||||
locllmasblCurve.Reset();
|
locllmasblCurve.Reset();
|
||||||
locccmasblCurve.Reset();
|
locccmasblCurve.Reset();
|
||||||
lochhmasblCurve.Reset();
|
lochhmasblCurve.Reset();
|
||||||
|
locllmaslcCurve.Reset();
|
||||||
|
locccmaslcCurve.Reset();
|
||||||
|
lochhmaslcCurve.Reset();
|
||||||
locwavCurve.Reset();
|
locwavCurve.Reset();
|
||||||
loclevwavCurve.Reset();
|
loclevwavCurve.Reset();
|
||||||
locconwavCurve.Reset();
|
locconwavCurve.Reset();
|
||||||
|
@ -188,6 +188,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
lmaskretilocalcurve(65536, 0),
|
lmaskretilocalcurve(65536, 0),
|
||||||
lmaskcblocalcurve(65536, 0),
|
lmaskcblocalcurve(65536, 0),
|
||||||
lmaskbllocalcurve(65536, 0),
|
lmaskbllocalcurve(65536, 0),
|
||||||
|
lmasklclocalcurve(65536, 0),
|
||||||
locallutili(false),
|
locallutili(false),
|
||||||
localclutili(false),
|
localclutili(false),
|
||||||
locallcutili(false),
|
locallcutili(false),
|
||||||
@ -206,6 +207,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
localmaskretiutili(false),
|
localmaskretiutili(false),
|
||||||
localmaskcbutili(false),
|
localmaskcbutili(false),
|
||||||
localmaskblutili(false),
|
localmaskblutili(false),
|
||||||
|
localmasklcutili(false),
|
||||||
lcmasexputili(false),
|
lcmasexputili(false),
|
||||||
lhmasexputili(false),
|
lhmasexputili(false),
|
||||||
llmasexputili(false),
|
llmasexputili(false),
|
||||||
@ -215,6 +217,9 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
lcmasvibutili(false),
|
lcmasvibutili(false),
|
||||||
lhmasvibutili(false),
|
lhmasvibutili(false),
|
||||||
llmasvibutili(false),
|
llmasvibutili(false),
|
||||||
|
lcmaslcutili(false),
|
||||||
|
lhmaslcutili(false),
|
||||||
|
llmaslcutili(false),
|
||||||
lcmascbutili(false),
|
lcmascbutili(false),
|
||||||
lhmascbutili(false),
|
lhmascbutili(false),
|
||||||
llmascbutili(false),
|
llmascbutili(false),
|
||||||
@ -1063,6 +1068,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
localmaskretiutili = false;
|
localmaskretiutili = false;
|
||||||
localmaskcbutili = false;
|
localmaskcbutili = false;
|
||||||
localmaskblutili = false;
|
localmaskblutili = false;
|
||||||
|
localmasklcutili = false;
|
||||||
lcmasSHutili = false;
|
lcmasSHutili = false;
|
||||||
lhmasSHutili = false;
|
lhmasSHutili = false;
|
||||||
llmasSHutili = false;
|
llmasSHutili = false;
|
||||||
@ -1072,6 +1078,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lcmascbutili = false;
|
lcmascbutili = false;
|
||||||
lhmascbutili = false;
|
lhmascbutili = false;
|
||||||
llmascbutili = false;
|
llmascbutili = false;
|
||||||
|
lcmaslcutili = false;
|
||||||
|
lhmaslcutili = false;
|
||||||
|
llmaslcutili = false;
|
||||||
lcmasretiutili = false;
|
lcmasretiutili = false;
|
||||||
lhmasretiutili = false;
|
lhmasretiutili = false;
|
||||||
llmasretiutili = false;
|
llmasretiutili = false;
|
||||||
@ -1109,6 +1118,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locllmascbCurve.Set(params->locallab.spots.at(sp).LLmaskcbcurve, llmascbutili);
|
locllmascbCurve.Set(params->locallab.spots.at(sp).LLmaskcbcurve, llmascbutili);
|
||||||
locccmascbCurve.Set(params->locallab.spots.at(sp).CCmaskcbcurve, lcmascbutili);
|
locccmascbCurve.Set(params->locallab.spots.at(sp).CCmaskcbcurve, lcmascbutili);
|
||||||
lochhmascbCurve.Set(params->locallab.spots.at(sp).HHmaskcbcurve, lhmascbutili);
|
lochhmascbCurve.Set(params->locallab.spots.at(sp).HHmaskcbcurve, lhmascbutili);
|
||||||
|
locllmaslcCurve.Set(params->locallab.spots.at(sp).LLmasklccurve, llmaslcutili);
|
||||||
|
locccmaslcCurve.Set(params->locallab.spots.at(sp).CCmasklccurve, lcmaslcutili);
|
||||||
|
lochhmaslcCurve.Set(params->locallab.spots.at(sp).HHmasklccurve, lhmaslcutili);
|
||||||
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);
|
||||||
@ -1140,6 +1152,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
CurveFactory::curvemaskLocal(localmaskretiutili, params->locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskretiutili, params->locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmaskcbutili, params->locallab.spots.at(sp).Lmaskcbcurve, lmaskcblocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskcbutili, params->locallab.spots.at(sp).Lmaskcbcurve, lmaskcblocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmaskblutili, params->locallab.spots.at(sp).Lmaskblcurve, lmaskbllocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskblutili, params->locallab.spots.at(sp).Lmaskblcurve, lmaskbllocalcurve, sca);
|
||||||
|
CurveFactory::curvemaskLocal(localmasklcutili, params->locallab.spots.at(sp).Lmasklccurve, lmasklclocalcurve, 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;
|
||||||
@ -1208,7 +1221,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
float Tsigma;
|
float Tsigma;
|
||||||
float Tmin;
|
float Tmin;
|
||||||
float Tmax;
|
float Tmax;
|
||||||
|
|
||||||
if (sp == params->locallab.selspot) {
|
if (sp == params->locallab.selspot) {
|
||||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, lastorigimp, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve,
|
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, lastorigimp, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve,
|
||||||
lllocalcurve, locallutili,
|
lllocalcurve, locallutili,
|
||||||
@ -1223,6 +1235,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmaskretilocalcurve, localmaskretiutili,
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
lmaskcblocalcurve, localmaskcbutili,
|
lmaskcblocalcurve, localmaskcbutili,
|
||||||
lmaskbllocalcurve, localmaskblutili,
|
lmaskbllocalcurve, localmaskblutili,
|
||||||
|
lmasklclocalcurve, localmasklcutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
||||||
@ -1230,6 +1243,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
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,
|
||||||
|
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili,
|
||||||
loclmasCurveblwav, lmasutiliblwav,
|
loclmasCurveblwav, lmasutiliblwav,
|
||||||
loclmasCurvecolwav, lmasutilicolwav,
|
loclmasCurvecolwav, lmasutilicolwav,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
@ -1263,6 +1277,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmaskretilocalcurve, localmaskretiutili,
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
lmaskcblocalcurve, localmaskcbutili,
|
lmaskcblocalcurve, localmaskcbutili,
|
||||||
lmaskbllocalcurve, localmaskblutili,
|
lmaskbllocalcurve, localmaskblutili,
|
||||||
|
lmasklclocalcurve, localmasklcutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
||||||
@ -1270,6 +1285,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
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,
|
||||||
|
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili,
|
||||||
loclmasCurveblwav, lmasutiliblwav,
|
loclmasCurveblwav, lmasutiliblwav,
|
||||||
loclmasCurvecolwav, lmasutilicolwav,
|
loclmasCurvecolwav, lmasutilicolwav,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
@ -1321,6 +1337,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmaskretilocalcurve.clear();
|
lmaskretilocalcurve.clear();
|
||||||
lmaskcblocalcurve.clear();
|
lmaskcblocalcurve.clear();
|
||||||
lmaskbllocalcurve.clear();
|
lmaskbllocalcurve.clear();
|
||||||
|
lmasklclocalcurve.clear();
|
||||||
hltonecurveloc.clear();
|
hltonecurveloc.clear();
|
||||||
shtonecurveloc.clear();
|
shtonecurveloc.clear();
|
||||||
tonecurveloc.clear();
|
tonecurveloc.clear();
|
||||||
@ -1353,6 +1370,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locllmasblCurve.Reset();
|
locllmasblCurve.Reset();
|
||||||
locccmasblCurve.Reset();
|
locccmasblCurve.Reset();
|
||||||
lochhmasblCurve.Reset();
|
lochhmasblCurve.Reset();
|
||||||
|
locllmaslcCurve.Reset();
|
||||||
|
locccmaslcCurve.Reset();
|
||||||
|
lochhmaslcCurve.Reset();
|
||||||
locwavCurve.Reset();
|
locwavCurve.Reset();
|
||||||
loclevwavCurve.Reset();
|
loclevwavCurve.Reset();
|
||||||
locconwavCurve.Reset();
|
locconwavCurve.Reset();
|
||||||
|
@ -250,6 +250,7 @@ protected:
|
|||||||
LUTf lmaskretilocalcurve;
|
LUTf lmaskretilocalcurve;
|
||||||
LUTf lmaskcblocalcurve;
|
LUTf lmaskcblocalcurve;
|
||||||
LUTf lmaskbllocalcurve;
|
LUTf lmaskbllocalcurve;
|
||||||
|
LUTf lmasklclocalcurve;
|
||||||
// LUTu lhist16loc;
|
// LUTu lhist16loc;
|
||||||
LocretigainCurve locRETgainCurve;
|
LocretigainCurve locRETgainCurve;
|
||||||
LocretitransCurve locRETtransCurve;
|
LocretitransCurve locRETtransCurve;
|
||||||
@ -269,6 +270,9 @@ protected:
|
|||||||
LocCCmaskCurve locccmasvibCurve;
|
LocCCmaskCurve locccmasvibCurve;
|
||||||
LocLLmaskCurve locllmasvibCurve;
|
LocLLmaskCurve locllmasvibCurve;
|
||||||
LocHHmaskCurve lochhmasvibCurve;
|
LocHHmaskCurve lochhmasvibCurve;
|
||||||
|
LocCCmaskCurve locccmaslcCurve;
|
||||||
|
LocLLmaskCurve locllmaslcCurve;
|
||||||
|
LocHHmaskCurve lochhmaslcCurve;
|
||||||
LocCCmaskCurve locccmascbCurve;
|
LocCCmaskCurve locccmascbCurve;
|
||||||
LocLLmaskCurve locllmascbCurve;
|
LocLLmaskCurve locllmascbCurve;
|
||||||
LocHHmaskCurve lochhmascbCurve;
|
LocHHmaskCurve lochhmascbCurve;
|
||||||
@ -307,6 +311,7 @@ protected:
|
|||||||
bool localmaskretiutili;
|
bool localmaskretiutili;
|
||||||
bool localmaskcbutili;
|
bool localmaskcbutili;
|
||||||
bool localmaskblutili;
|
bool localmaskblutili;
|
||||||
|
bool localmasklcutili;
|
||||||
bool lcmasexputili;
|
bool lcmasexputili;
|
||||||
bool lhmasexputili;
|
bool lhmasexputili;
|
||||||
bool llmasexputili;
|
bool llmasexputili;
|
||||||
@ -316,6 +321,9 @@ protected:
|
|||||||
bool lcmasvibutili;
|
bool lcmasvibutili;
|
||||||
bool lhmasvibutili;
|
bool lhmasvibutili;
|
||||||
bool llmasvibutili;
|
bool llmasvibutili;
|
||||||
|
bool lcmaslcutili;
|
||||||
|
bool lhmaslcutili;
|
||||||
|
bool llmaslcutili;
|
||||||
bool lcmascbutili;
|
bool lcmascbutili;
|
||||||
bool lhmascbutili;
|
bool lhmascbutili;
|
||||||
bool llmascbutili;
|
bool llmascbutili;
|
||||||
|
@ -287,6 +287,7 @@ public:
|
|||||||
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
LUTf & lmaskcblocalcurve, bool & localmaskcbutili,
|
LUTf & lmaskcblocalcurve, bool & localmaskcbutili,
|
||||||
LUTf & lmaskbllocalcurve, bool & localmaskblutili,
|
LUTf & lmaskbllocalcurve, bool & localmaskblutili,
|
||||||
|
LUTf & lmasklclocalcurve, bool & localmasklcutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili, const LocHHmaskCurve & lochhhmasCurve, bool & lhhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili, const LocHHmaskCurve & lochhhmasCurve, bool & lhhmasutili,
|
||||||
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,
|
||||||
@ -295,6 +296,7 @@ public:
|
|||||||
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
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 LocCCmaskCurve & locccmaslcCurve, bool &lcmaslcutili, const LocLLmaskCurve & locllmaslcCurve, bool &llmaslcutili, const LocHHmaskCurve & lochhmaslcCurve, bool & lhmaslcutili,
|
||||||
const LocwavCurve & loclmasCurveblwav, bool & lmasutiliblwav,
|
const LocwavCurve & loclmasCurveblwav, bool & lmasutiliblwav,
|
||||||
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav,
|
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav,
|
||||||
const LocwavCurve & locwavCurve, bool & locwavutili,
|
const LocwavCurve & locwavCurve, bool & locwavutili,
|
||||||
|
@ -96,7 +96,7 @@ void calcGammaLut(double gamma, double ts, LUTf &gammaLut)
|
|||||||
std::swap(pwr, gamm);
|
std::swap(pwr, gamm);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("OK calcgamm\n");
|
// printf("OK calcgamm\n");
|
||||||
|
|
||||||
rtengine::Color::calcGamma(pwr, ts, 0, g_a); // call to calcGamma with selected gamma and slope
|
rtengine::Color::calcGamma(pwr, ts, 0, g_a); // call to calcGamma with selected gamma and slope
|
||||||
|
|
||||||
@ -211,6 +211,9 @@ struct local_params {
|
|||||||
float chromacol;
|
float chromacol;
|
||||||
float gammacol;
|
float gammacol;
|
||||||
float slomacol;
|
float slomacol;
|
||||||
|
float blendmalc;
|
||||||
|
float radmalc;
|
||||||
|
float chromalc;
|
||||||
float radmaexp;
|
float radmaexp;
|
||||||
float chromaexp;
|
float chromaexp;
|
||||||
float gammaexp;
|
float gammaexp;
|
||||||
@ -588,7 +591,6 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.showmaskSHmetinv = llSHMaskinv;
|
lp.showmaskSHmetinv = llSHMaskinv;
|
||||||
lp.showmaskvibmet = llvibMask;
|
lp.showmaskvibmet = llvibMask;
|
||||||
lp.showmasklcmet = lllcMask;
|
lp.showmasklcmet = lllcMask;
|
||||||
printf("lpshamlc=%i\n",lp.showmasklcmet);
|
|
||||||
lp.showmaskcbmet = llcbMask;
|
lp.showmaskcbmet = llcbMask;
|
||||||
lp.showmaskretimet = llretiMask;
|
lp.showmaskretimet = llretiMask;
|
||||||
lp.showmasksoftmet = llsoftMask;
|
lp.showmasksoftmet = llsoftMask;
|
||||||
@ -799,6 +801,9 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
float labgridALowlocmerg = locallab.spots.at(sp).labgridALowmerg;
|
float labgridALowlocmerg = locallab.spots.at(sp).labgridALowmerg;
|
||||||
float labgridAHighlocmerg = locallab.spots.at(sp).labgridAHighmerg;
|
float labgridAHighlocmerg = locallab.spots.at(sp).labgridAHighmerg;
|
||||||
|
|
||||||
|
float blendmasklc = ((float) locallab.spots.at(sp).blendmasklc) / 100.f ;
|
||||||
|
float radmasklc = ((float) locallab.spots.at(sp).radmasklc);
|
||||||
|
float chromasklc = ((float) locallab.spots.at(sp).chromasklc);
|
||||||
float structcolor = (float) locallab.spots.at(sp).structcol;
|
float structcolor = (float) locallab.spots.at(sp).structcol;
|
||||||
float blendmaskcolor = ((float) locallab.spots.at(sp).blendmaskcol) / 100.f ;
|
float blendmaskcolor = ((float) locallab.spots.at(sp).blendmaskcol) / 100.f ;
|
||||||
float radmaskcolor = ((float) locallab.spots.at(sp).radmaskcol);
|
float radmaskcolor = ((float) locallab.spots.at(sp).radmaskcol);
|
||||||
@ -934,6 +939,9 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.chro = local_chroma;
|
lp.chro = local_chroma;
|
||||||
lp.struco = structcolor;
|
lp.struco = structcolor;
|
||||||
lp.strengrid = strengthgrid;
|
lp.strengrid = strengthgrid;
|
||||||
|
lp.blendmalc = blendmasklc;
|
||||||
|
lp.radmalc = radmasklc;
|
||||||
|
lp.chromalc = chromasklc;
|
||||||
lp.blendmacol = blendmaskcolor;
|
lp.blendmacol = blendmaskcolor;
|
||||||
lp.radmacol = radmaskcolor;
|
lp.radmacol = radmaskcolor;
|
||||||
lp.chromacol = chromaskcolor;
|
lp.chromacol = chromaskcolor;
|
||||||
@ -3809,7 +3817,6 @@ void ImProcFunctions::maskcalccol(int call, bool invmask, bool pde, int bfw, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel
|
#pragma omp parallel
|
||||||
#endif
|
#endif
|
||||||
@ -3867,6 +3874,7 @@ void ImProcFunctions::maskcalccol(int call, bool invmask, bool pde, int bfw, int
|
|||||||
|
|
||||||
if (locllmasCurve && llmasutili) {
|
if (locllmasCurve && llmasutili) {
|
||||||
kmaskL = 32768.f * LIM01(kinv - kneg * locllmasCurve[(500.f / 32768.f) * bufcolorig->L[ir][jr]]);
|
kmaskL = 32768.f * LIM01(kinv - kneg * locllmasCurve[(500.f / 32768.f) * bufcolorig->L[ir][jr]]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!deltaE && locccmasCurve && lcmasutili) {
|
if (!deltaE && locccmasCurve && lcmasutili) {
|
||||||
@ -3988,7 +3996,6 @@ void ImProcFunctions::maskcalccol(int call, bool invmask, bool pde, int bfw, int
|
|||||||
rtengine::guidedFilter(guid, ble, ble, r2, 0.2 * epsil, multiThread);
|
rtengine::guidedFilter(guid, ble, ble, r2, 0.2 * epsil, multiThread);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("OK A\n");
|
|
||||||
LUTf lutTonemaskexp(65536);
|
LUTf lutTonemaskexp(65536);
|
||||||
calcGammaLut(gamma, slope, lutTonemaskexp);
|
calcGammaLut(gamma, slope, lutTonemaskexp);
|
||||||
|
|
||||||
@ -6180,12 +6187,14 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag
|
|||||||
const bool colshow = ((lp.showmaskcolmet == 1 || lp.showmaskcolmet == 2) && senstype == 0);
|
const bool colshow = ((lp.showmaskcolmet == 1 || lp.showmaskcolmet == 2) && senstype == 0);
|
||||||
const bool SHshow = ((lp.showmaskSHmet == 1 || lp.showmaskSHmet == 2) && senstype == 9);
|
const bool SHshow = ((lp.showmaskSHmet == 1 || lp.showmaskSHmet == 2) && senstype == 9);
|
||||||
const bool tmshow = ((lp.showmasktmmet == 1 || lp.showmasktmmet == 2) && senstype == 8);
|
const bool tmshow = ((lp.showmasktmmet == 1 || lp.showmasktmmet == 2) && senstype == 8);
|
||||||
|
const bool lcshow = ((lp.showmasklcmet == 1 || lp.showmasklcmet == 2) && senstype == 10);
|
||||||
|
|
||||||
const bool previewvib = ((lp.showmaskvibmet == 4) && senstype == 2);
|
const bool previewvib = ((lp.showmaskvibmet == 4) && senstype == 2);
|
||||||
const bool previewexp = ((lp.showmaskexpmet == 5) && senstype == 1);
|
const bool previewexp = ((lp.showmaskexpmet == 5) && senstype == 1);
|
||||||
const bool previewcol = ((lp.showmaskcolmet == 5) && senstype == 0);
|
const bool previewcol = ((lp.showmaskcolmet == 5) && senstype == 0);
|
||||||
const bool previewSH = ((lp.showmaskSHmet == 4) && senstype == 9);
|
const bool previewSH = ((lp.showmaskSHmet == 4) && senstype == 9);
|
||||||
const bool previewtm = ((lp.showmasktmmet == 4) && senstype == 8);
|
const bool previewtm = ((lp.showmasktmmet == 4) && senstype == 8);
|
||||||
|
const bool previewlc = ((lp.showmasklcmet == 4) && senstype == 10);
|
||||||
|
|
||||||
float radius = 3.f / sk;
|
float radius = 3.f / sk;
|
||||||
|
|
||||||
@ -6217,7 +6226,8 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag
|
|||||||
const bool usemaskcol = (lp.showmaskcolmet == 2 || lp.enaColorMask || lp.showmaskcolmet == 5) && senstype == 0;
|
const bool usemaskcol = (lp.showmaskcolmet == 2 || lp.enaColorMask || lp.showmaskcolmet == 5) && senstype == 0;
|
||||||
const bool usemaskSH = (lp.showmaskSHmet == 2 || lp.enaSHMask || lp.showmaskSHmet == 4) && senstype == 9;
|
const bool usemaskSH = (lp.showmaskSHmet == 2 || lp.enaSHMask || lp.showmaskSHmet == 4) && senstype == 9;
|
||||||
const bool usemasktm = (lp.showmasktmmet == 2 || lp.enatmMask || lp.showmasktmmet == 4) && senstype == 8;
|
const bool usemasktm = (lp.showmasktmmet == 2 || lp.enatmMask || lp.showmasktmmet == 4) && senstype == 8;
|
||||||
const bool usemaskall = (usemaskexp || usemaskvib || usemaskcol || usemaskSH || usemasktm);
|
const bool usemasklc = (lp.showmasklcmet == 2 || lp.enalcMask || lp.showmasklcmet == 4) && senstype == 10;
|
||||||
|
const bool usemaskall = (usemaskexp || usemaskvib || usemaskcol || usemaskSH || usemasktm || usemasklc);
|
||||||
|
|
||||||
//blur a little mask
|
//blur a little mask
|
||||||
if (usemaskall) {
|
if (usemaskall) {
|
||||||
@ -6404,7 +6414,7 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag
|
|||||||
difb = factorx * realstrbdE;
|
difb = factorx * realstrbdE;
|
||||||
float maxdifab = max(fabs(difa), fabs(difb));
|
float maxdifab = max(fabs(difa), fabs(difb));
|
||||||
|
|
||||||
if (expshow || vibshow || colshow || SHshow || tmshow) {//show modifications
|
if (expshow || vibshow || colshow || SHshow || tmshow || lcshow) {//show modifications
|
||||||
if (diflc < 1000.f) {//if too low to be view use ab
|
if (diflc < 1000.f) {//if too low to be view use ab
|
||||||
diflc += 0.5f * maxdifab;
|
diflc += 0.5f * maxdifab;
|
||||||
}
|
}
|
||||||
@ -6412,7 +6422,7 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag
|
|||||||
transformed->L[y + ystart][x + xstart] = CLIP(12000.f + diflc);
|
transformed->L[y + ystart][x + xstart] = CLIP(12000.f + diflc);
|
||||||
transformed->a[y + ystart][x + xstart] = CLIPC(difa);
|
transformed->a[y + ystart][x + xstart] = CLIPC(difa);
|
||||||
transformed->b[y + ystart][x + xstart] = CLIPC(difb);
|
transformed->b[y + ystart][x + xstart] = CLIPC(difb);
|
||||||
} else if (previewexp || previewvib || previewcol || previewSH || previewtm) {//show deltaE
|
} else if (previewexp || previewvib || previewcol || previewSH || previewtm || previewlc) {//show deltaE
|
||||||
if (fabs(difb) < 500.f) {//if too low to be view use L
|
if (fabs(difb) < 500.f) {//if too low to be view use L
|
||||||
if (difb < 0.f) {
|
if (difb < 0.f) {
|
||||||
difb -= 0.5f * diflc;
|
difb -= 0.5f * diflc;
|
||||||
@ -9041,6 +9051,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
LUTf & lmaskcblocalcurve, bool & localmaskcbutili,
|
LUTf & lmaskcblocalcurve, bool & localmaskcbutili,
|
||||||
LUTf & lmaskbllocalcurve, bool & localmaskblutili,
|
LUTf & lmaskbllocalcurve, bool & localmaskblutili,
|
||||||
|
LUTf & lmasklclocalcurve, bool & localmasklcutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili, const LocHHmaskCurve & lochhhmasCurve, bool & lhhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili, const LocHHmaskCurve & lochhhmasCurve, bool & lhhmasutili,
|
||||||
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,
|
||||||
@ -9049,6 +9060,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
const LocCCmaskCurve & locccmasretiCurve, bool & lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool & llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
const LocCCmaskCurve & locccmasretiCurve, bool & lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool & llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
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 LocCCmaskCurve & locccmaslcCurve, bool & lcmaslcutili, const LocLLmaskCurve & locllmaslcCurve, bool & llmaslcutili, const LocHHmaskCurve & lochhmaslcCurve, bool & lhmaslcutili,
|
||||||
const LocwavCurve & loclmasCurveblwav, bool & lmasutiliblwav,
|
const LocwavCurve & loclmasCurveblwav, bool & lmasutiliblwav,
|
||||||
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav,
|
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav,
|
||||||
const LocwavCurve & locwavCurve, bool & locwavutili,
|
const LocwavCurve & locwavCurve, bool & locwavutili,
|
||||||
@ -9065,7 +9077,6 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
if (params->locallab.enabled) {
|
if (params->locallab.enabled) {
|
||||||
BENCHFUN
|
BENCHFUN
|
||||||
int complexsoft = options.complexity;
|
int complexsoft = options.complexity;
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
// init variables to display Munsell corrections
|
// init variables to display Munsell corrections
|
||||||
MunsellDebugInfo* MunsDebugInfo = new MunsellDebugInfo();
|
MunsellDebugInfo* MunsDebugInfo = new MunsellDebugInfo();
|
||||||
@ -10116,7 +10127,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomacb;
|
float slope = lp.slomacb;
|
||||||
float blendm = lp.blendmacb;
|
float blendm = lp.blendmacb;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskcb;
|
float lap = params->locallab.spots.at(sp).lapmaskcb;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
LocwavCurve dummy;
|
LocwavCurve dummy;
|
||||||
bool delt = params->locallab.spots.at(sp).deltae;
|
bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
int sco = params->locallab.spots.at(sp).scopemask;
|
int sco = params->locallab.spots.at(sp).scopemask;
|
||||||
@ -10341,7 +10352,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomavib;
|
float slope = lp.slomavib;
|
||||||
float blendm = lp.blendmavib;
|
float blendm = lp.blendmavib;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskvib;
|
float lap = params->locallab.spots.at(sp).lapmaskvib;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
LocwavCurve dummy;
|
LocwavCurve dummy;
|
||||||
bool lmasutilicolwav = false;
|
bool lmasutilicolwav = false;
|
||||||
bool delt = params->locallab.spots.at(sp).deltae;
|
bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
@ -10577,7 +10588,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomatm;
|
float slope = lp.slomatm;
|
||||||
float blendm = lp.blendmatm;
|
float blendm = lp.blendmatm;
|
||||||
float lap = params->locallab.spots.at(sp).lapmasktm;
|
float lap = params->locallab.spots.at(sp).lapmasktm;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
int shortcu = 0; //lp.mergemet;// params->locallab.spots.at(sp).shortc;
|
int shortcu = 0; //lp.mergemet;// params->locallab.spots.at(sp).shortc;
|
||||||
int lumask = params->locallab.spots.at(sp).lumask;
|
int lumask = params->locallab.spots.at(sp).lumask;
|
||||||
|
|
||||||
@ -10812,7 +10823,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomaSH;
|
float slope = lp.slomaSH;
|
||||||
float blendm = lp.blendmaSH;
|
float blendm = lp.blendmaSH;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskSH;
|
float lap = params->locallab.spots.at(sp).lapmaskSH;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
LocwavCurve dummy;
|
LocwavCurve dummy;
|
||||||
bool lmasutilicolwav = false;
|
bool lmasutilicolwav = false;
|
||||||
bool delt = params->locallab.spots.at(sp).deltae;
|
bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
@ -10971,7 +10982,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomaSH;
|
float slope = lp.slomaSH;
|
||||||
float blendm = lp.blendmaSH;
|
float blendm = lp.blendmaSH;
|
||||||
float lap = params->locallab.spots.at(sp).lapmaskSH;
|
float lap = params->locallab.spots.at(sp).lapmaskSH;
|
||||||
float pde = params->locallab.spots.at(sp).laplac;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
LocwavCurve dummy;
|
LocwavCurve dummy;
|
||||||
bool lmasutilicolwav = false;
|
bool lmasutilicolwav = false;
|
||||||
// bool delt = params->locallab.spots.at(sp).deltae;
|
// bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
@ -11160,7 +11171,9 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((lp.lcamount > 0.f || wavcurve || wavcurvelev || wavcurvecon || wavcurvecomp || params->locallab.spots.at(sp).residblur > 0.f || params->locallab.spots.at(sp).levelblur > 0.f || params->locallab.spots.at(sp).residcont != 0.f || params->locallab.spots.at(sp).clarilres != 0.f || params->locallab.spots.at(sp).claricres != 0.f) && call < 3 && lp.lcena) {
|
|
||||||
|
if ((lp.lcamount > 0.f || wavcurve || lp.showmasklcmet == 2 || lp.enalcMask || lp.showmasklcmet == 3 || lp.showmasklcmet == 4 || wavcurvelev || wavcurvecon || wavcurvecomp || params->locallab.spots.at(sp).residblur > 0.f || params->locallab.spots.at(sp).levelblur > 0.f || params->locallab.spots.at(sp).residcont != 0.f || params->locallab.spots.at(sp).clarilres != 0.f || params->locallab.spots.at(sp).claricres != 0.f) && call < 3 && lp.lcena) {
|
||||||
|
|
||||||
int ystart = std::max(static_cast<int>(lp.yc - lp.lyT) - cy, 0);
|
int ystart = std::max(static_cast<int>(lp.yc - lp.lyT) - cy, 0);
|
||||||
int yend = std::min(static_cast<int>(lp.yc + lp.ly) - cy, original->H);
|
int yend = std::min(static_cast<int>(lp.yc + lp.ly) - cy, original->H);
|
||||||
int xstart = std::max(static_cast<int>(lp.xc - lp.lxL) - cx, 0);
|
int xstart = std::max(static_cast<int>(lp.xc - lp.lxL) - cx, 0);
|
||||||
@ -11178,6 +11191,16 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
optfft(N_fftwsize, bfh, bfw, bfhr, bfwr, reduH, reduW, lp, original->H, original->W, xstart, ystart, xend, yend, cx, cy);
|
optfft(N_fftwsize, bfh, bfw, bfhr, bfwr, reduH, reduW, lp, original->H, original->W, xstart, ystart, xend, yend, cx, cy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<LabImage> bufmaskblurlc;
|
||||||
|
std::unique_ptr<LabImage> originalmasklc;
|
||||||
|
std::unique_ptr<LabImage> bufmaskoriglc;
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 2 || lp.enalcMask || lp.showmasklcmet == 3 || lp.showmasklcmet == 4) {
|
||||||
|
bufmaskblurlc.reset(new LabImage(bfw, bfh));
|
||||||
|
originalmasklc.reset(new LabImage(bfw, bfh));
|
||||||
|
bufmaskoriglc.reset(new LabImage(bfw, bfh));
|
||||||
|
}
|
||||||
|
|
||||||
array2D<float> buflight(bfw, bfh);
|
array2D<float> buflight(bfw, bfh);
|
||||||
JaggedArray<float> bufchro(bfw, bfh);
|
JaggedArray<float> bufchro(bfw, bfh);
|
||||||
std::unique_ptr<LabImage> bufgb(new LabImage(bfw, bfh));
|
std::unique_ptr<LabImage> bufgb(new LabImage(bfw, bfh));
|
||||||
@ -11207,6 +11230,88 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _OPENMP
|
||||||
|
#pragma omp parallel for schedule(dynamic,16)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (int y = 0; y < bfh; y++) {
|
||||||
|
for (int x = 0; x < bfw; x++) {
|
||||||
|
bufgb->L[y][x] = original->L[y + ystart][x + xstart];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int inv = 0;
|
||||||
|
bool showmaske = false;
|
||||||
|
bool enaMask = false;
|
||||||
|
bool deltaE = false;
|
||||||
|
bool modmask = false;
|
||||||
|
bool zero = false;
|
||||||
|
bool modif = false;
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 3) {
|
||||||
|
showmaske = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp.enalcMask) {
|
||||||
|
enaMask = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 4) {
|
||||||
|
deltaE = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 2) {
|
||||||
|
modmask = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 1) {
|
||||||
|
modif = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 0) {
|
||||||
|
zero = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float chrom = lp.chromalc;
|
||||||
|
float rad = lp.radmalc;
|
||||||
|
float blendm = lp.blendmalc;
|
||||||
|
float gamma = 1.f;
|
||||||
|
float slope = 0.f;
|
||||||
|
float lap = 0.f; //params->locallab.spots.at(sp).lapmaskexp;
|
||||||
|
bool pde = false; //params->locallab.spots.at(sp).laplac;
|
||||||
|
LocwavCurve dummy;
|
||||||
|
bool lmasutilicolwav = false;
|
||||||
|
bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
|
int sco = params->locallab.spots.at(sp).scopemask;
|
||||||
|
int shado = 0;
|
||||||
|
int shortcu = 0;//lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||||
|
const int limscope = 80;
|
||||||
|
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
|
||||||
|
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
|
||||||
|
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
|
||||||
|
const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
|
||||||
|
float amountcd = 0.f;
|
||||||
|
float anchorcd = 50.f;
|
||||||
|
int lumask = params->locallab.spots.at(sp).lumask;
|
||||||
|
LocHHmaskCurve lochhhmasCurve;
|
||||||
|
bool lhhmasutili = false;
|
||||||
|
maskcalccol(call, false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufgb.get(), bufmaskoriglc.get(), originalmasklc.get(), original, reserved, inv, lp,
|
||||||
|
0.f, false,
|
||||||
|
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili, lochhhmasCurve, lhhmasutili, multiThread,
|
||||||
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasklclocalcurve, localmasklcutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
|
||||||
|
shortcu, delt, hueref, chromaref, lumaref,
|
||||||
|
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco
|
||||||
|
);
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 3) {
|
||||||
|
showmask(lumask, lp, xstart, ystart, cx, cy, bfw, bfh, bufgb.get(), transformed, bufmaskoriglc.get(), 0);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp.showmasklcmet == 0 || lp.showmasklcmet == 1 || lp.showmasklcmet == 2 || lp.showmasklcmet == 4 || lp.enalcMask) {
|
||||||
|
|
||||||
if (lp.locmet == 0) {
|
if (lp.locmet == 0) {
|
||||||
LocalContrastParams localContrastParams;
|
LocalContrastParams localContrastParams;
|
||||||
LocallabParams locallabparams;
|
LocallabParams locallabparams;
|
||||||
@ -11471,9 +11576,10 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
transit_shapedetect2(call, 10, bufgb.get(), tmp1.get(), nullptr, hueref, chromaref, lumaref, sobelref, 0.f, nullptr, lp, original, transformed, cx, cy, sk);
|
transit_shapedetect2(call, 10, bufgb.get(), tmp1.get(), originalmasklc.get(), hueref, chromaref, lumaref, sobelref, 0.f, nullptr, lp, original, transformed, cx, cy, sk);
|
||||||
// transit_shapedetect(10, tmp1.get(), nullptr, bufchro, false, hueref, chromaref, lumaref, sobelref, 0.f, nullptr, lp, original, transformed, cx, cy, sk);
|
// transit_shapedetect(10, tmp1.get(), nullptr, bufchro, false, hueref, chromaref, lumaref, sobelref, 0.f, nullptr, lp, original, transformed, cx, cy, sk);
|
||||||
tmp1.reset();
|
tmp1.reset();
|
||||||
|
}
|
||||||
|
|
||||||
if (params->locallab.spots.at(sp).recurs) {
|
if (params->locallab.spots.at(sp).recurs) {
|
||||||
original->CopyFrom(transformed);
|
original->CopyFrom(transformed);
|
||||||
@ -12483,7 +12589,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomaexp;
|
float slope = lp.slomaexp;
|
||||||
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;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
LocwavCurve dummy;
|
LocwavCurve dummy;
|
||||||
bool lmasutilicolwav = false;
|
bool lmasutilicolwav = false;
|
||||||
bool delt = params->locallab.spots.at(sp).deltae;
|
bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
@ -12671,7 +12777,6 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("OK 10\n");
|
|
||||||
|
|
||||||
//shadows with ipshadowshighlight
|
//shadows with ipshadowshighlight
|
||||||
if ((lp.expcomp != 0.f && lp.expcomp != 0.01f) || (exlocalcurve && localexutili)) {
|
if ((lp.expcomp != 0.f && lp.expcomp != 0.01f) || (exlocalcurve && localexutili)) {
|
||||||
@ -12781,7 +12886,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomaexp;
|
float slope = lp.slomaexp;
|
||||||
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;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
LocwavCurve dummy;
|
LocwavCurve dummy;
|
||||||
bool lmasutilicolwav = false;
|
bool lmasutilicolwav = false;
|
||||||
// bool delt = params->locallab.spots.at(sp).deltae;
|
// bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
@ -13085,7 +13190,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomacol;
|
float slope = lp.slomacol;
|
||||||
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;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
int shado = params->locallab.spots.at(sp).shadmaskcol;
|
int shado = params->locallab.spots.at(sp).shadmaskcol;
|
||||||
bool delt = params->locallab.spots.at(sp).deltae;
|
bool delt = params->locallab.spots.at(sp).deltae;
|
||||||
bool astool = params->locallab.spots.at(sp).toolcol;
|
bool astool = params->locallab.spots.at(sp).toolcol;
|
||||||
@ -14409,7 +14514,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float slope = lp.slomacol;
|
float slope = lp.slomacol;
|
||||||
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;
|
bool pde = params->locallab.spots.at(sp).laplac;
|
||||||
int shado = params->locallab.spots.at(sp).shadmaskcol;
|
int shado = params->locallab.spots.at(sp).shadmaskcol;
|
||||||
int level_bl = params->locallab.spots.at(sp).csthresholdcol.getBottomLeft();
|
int level_bl = params->locallab.spots.at(sp).csthresholdcol.getBottomLeft();
|
||||||
int level_hl = params->locallab.spots.at(sp).csthresholdcol.getTopLeft();
|
int level_hl = params->locallab.spots.at(sp).csthresholdcol.getTopLeft();
|
||||||
|
@ -1101,6 +1101,9 @@ private:
|
|||||||
LocCCmaskCurve locccmasvibCurve;
|
LocCCmaskCurve locccmasvibCurve;
|
||||||
LocLLmaskCurve locllmasvibCurve;
|
LocLLmaskCurve locllmasvibCurve;
|
||||||
LocHHmaskCurve lochhmasvibCurve;
|
LocHHmaskCurve lochhmasvibCurve;
|
||||||
|
LocCCmaskCurve locccmaslcCurve;
|
||||||
|
LocLLmaskCurve locllmaslcCurve;
|
||||||
|
LocHHmaskCurve lochhmaslcCurve;
|
||||||
LocCCmaskCurve locccmascbCurve;
|
LocCCmaskCurve locccmascbCurve;
|
||||||
LocLLmaskCurve locllmascbCurve;
|
LocLLmaskCurve locllmascbCurve;
|
||||||
LocHHmaskCurve lochhmascbCurve;
|
LocHHmaskCurve lochhmascbCurve;
|
||||||
@ -1138,6 +1141,7 @@ private:
|
|||||||
LUTf lmaskretilocalcurve(65536, 0);
|
LUTf lmaskretilocalcurve(65536, 0);
|
||||||
LUTf lmaskcblocalcurve(65536, 0);
|
LUTf lmaskcblocalcurve(65536, 0);
|
||||||
LUTf lmaskbllocalcurve(65536, 0);
|
LUTf lmaskbllocalcurve(65536, 0);
|
||||||
|
LUTf lmasklclocalcurve(65536, 0);
|
||||||
|
|
||||||
// int maxspot = 1;
|
// int maxspot = 1;
|
||||||
float** shbuffer = nullptr;
|
float** shbuffer = nullptr;
|
||||||
@ -1172,6 +1176,7 @@ private:
|
|||||||
bool localmaskretiutili = false;
|
bool localmaskretiutili = false;
|
||||||
bool localmaskcbutili = false;
|
bool localmaskcbutili = false;
|
||||||
bool localmaskblutili = false;
|
bool localmaskblutili = false;
|
||||||
|
bool localmasklcutili = false;
|
||||||
bool lcmasexputili = false;
|
bool lcmasexputili = false;
|
||||||
bool lhmasexputili = false;
|
bool lhmasexputili = false;
|
||||||
bool llmasexputili = false;
|
bool llmasexputili = false;
|
||||||
@ -1181,6 +1186,9 @@ private:
|
|||||||
bool lcmasvibutili = false;
|
bool lcmasvibutili = false;
|
||||||
bool lhmasvibutili = false;
|
bool lhmasvibutili = false;
|
||||||
bool llmasvibutili = false;
|
bool llmasvibutili = false;
|
||||||
|
bool lcmaslcutili = false;
|
||||||
|
bool lhmaslcutili = false;
|
||||||
|
bool llmaslcutili = false;
|
||||||
bool lcmascbutili = false;
|
bool lcmascbutili = false;
|
||||||
bool lhmascbutili = false;
|
bool lhmascbutili = false;
|
||||||
bool llmascbutili = false;
|
bool llmascbutili = false;
|
||||||
@ -1251,6 +1259,7 @@ private:
|
|||||||
CurveFactory::curvemaskLocal(localmaskretiutili, params.locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskretiutili, params.locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmaskcbutili, params.locallab.spots.at(sp).Lmaskcbcurve, lmaskcblocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskcbutili, params.locallab.spots.at(sp).Lmaskcbcurve, lmaskcblocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmaskblutili, params.locallab.spots.at(sp).Lmaskblcurve, lmaskbllocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskblutili, params.locallab.spots.at(sp).Lmaskblcurve, lmaskbllocalcurve, 1);
|
||||||
|
CurveFactory::curvemaskLocal(localmasklcutili, params.locallab.spots.at(sp).Lmasklccurve, lmasklclocalcurve, 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;
|
||||||
@ -1298,6 +1307,7 @@ private:
|
|||||||
lmaskretilocalcurve, localmaskretiutili,
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
lmaskcblocalcurve, localmaskcbutili,
|
lmaskcblocalcurve, localmaskcbutili,
|
||||||
lmaskbllocalcurve, localmaskblutili,
|
lmaskbllocalcurve, localmaskblutili,
|
||||||
|
lmasklclocalcurve, localmasklcutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili,
|
||||||
@ -1305,6 +1315,7 @@ private:
|
|||||||
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,
|
||||||
|
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili,
|
||||||
loclmasCurveblwav,lmasutiliblwav,
|
loclmasCurveblwav,lmasutiliblwav,
|
||||||
loclmasCurvecolwav,lmasutilicolwav,
|
loclmasCurvecolwav,lmasutilicolwav,
|
||||||
locwavCurve, locwavutili,
|
locwavCurve, locwavutili,
|
||||||
|
@ -238,7 +238,7 @@ Locallab::Locallab():
|
|||||||
expcurvcol(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_EXPCURV")))),
|
expcurvcol(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_EXPCURV")))),
|
||||||
expmaskexp(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWE")))),
|
expmaskexp(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWE")))),
|
||||||
expmasksh(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWS")))),
|
expmasksh(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWS")))),
|
||||||
expmasklc(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWCB")))),
|
expmasklc(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWLC")))),
|
||||||
expmaskcb(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWCB")))),
|
expmaskcb(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWCB")))),
|
||||||
expmaskreti(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWR")))),
|
expmaskreti(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWR")))),
|
||||||
expmasktm(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWT")))),
|
expmasktm(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWT")))),
|
||||||
@ -3094,7 +3094,7 @@ pe(nullptr)
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
expmasklc->add(*masklcBox, false);
|
expmasklc->add(*masklcBox, false);
|
||||||
// contrastBox->pack_start(*expmasklc, false, false);
|
contrastBox->pack_start(*expmasklc, false, false);
|
||||||
expcontrast->add(*contrastBox, false);
|
expcontrast->add(*contrastBox, false);
|
||||||
expcontrast->setLevel(2);
|
expcontrast->setLevel(2);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user