Add contrast curve to mask 5 Retinex
This commit is contained in:
parent
94bd0a7d60
commit
edbfe1a1fd
@ -1011,6 +1011,7 @@ HISTORY_MSG_770;Local - Color Mask contrast curve
|
|||||||
HISTORY_MSG_771;Local - Exp Mask contrast curve
|
HISTORY_MSG_771;Local - Exp Mask contrast curve
|
||||||
HISTORY_MSG_772;Local - SH Mask contrast curve
|
HISTORY_MSG_772;Local - SH Mask contrast curve
|
||||||
HISTORY_MSG_773;Local - TM Mask contrast curve
|
HISTORY_MSG_773;Local - TM Mask contrast curve
|
||||||
|
HISTORY_MSG_774;Local - Reti Mask contrast curve
|
||||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||||
|
@ -890,10 +890,12 @@ void Crop::update(int todo)
|
|||||||
bool localmaskexputili = parent->localmaskexputili;
|
bool localmaskexputili = parent->localmaskexputili;
|
||||||
bool localmaskSHutili = parent->localmaskSHutili;
|
bool localmaskSHutili = parent->localmaskSHutili;
|
||||||
bool localmasktmutili = parent->localmasktmutili;
|
bool localmasktmutili = parent->localmasktmutili;
|
||||||
|
bool localmaskretiutili = parent->localmaskretiutili;
|
||||||
LUTf lmasklocalcurve2(65536, 0);
|
LUTf lmasklocalcurve2(65536, 0);
|
||||||
LUTf lmaskexplocalcurve2(65536, 0);
|
LUTf lmaskexplocalcurve2(65536, 0);
|
||||||
LUTf lmaskSHlocalcurve2(65536, 0);
|
LUTf lmaskSHlocalcurve2(65536, 0);
|
||||||
LUTf lmasktmlocalcurve2(65536, 0);
|
LUTf lmasktmlocalcurve2(65536, 0);
|
||||||
|
LUTf lmaskretilocalcurve2(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);
|
||||||
@ -1001,6 +1003,8 @@ void Crop::update(int todo)
|
|||||||
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve2, sca);
|
||||||
localmasktmutili = false;
|
localmasktmutili = false;
|
||||||
CurveFactory::curvemaskLocal(localmasktmutili, params.locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmasktmutili, params.locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve2, sca);
|
||||||
|
localmaskretiutili = false;
|
||||||
|
CurveFactory::curvemaskLocal(localmaskretiutili, params.locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve2, sca);
|
||||||
|
|
||||||
|
|
||||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||||
@ -1043,6 +1047,7 @@ void Crop::update(int todo)
|
|||||||
lmaskexplocalcurve2, localmaskexputili,
|
lmaskexplocalcurve2, localmaskexputili,
|
||||||
lmaskSHlocalcurve2, localmaskSHutili,
|
lmaskSHlocalcurve2, localmaskSHutili,
|
||||||
lmasktmlocalcurve2, localmasktmutili,
|
lmasktmlocalcurve2, localmasktmutili,
|
||||||
|
lmaskretilocalcurve2, localmaskretiutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1064,6 +1069,7 @@ void Crop::update(int todo)
|
|||||||
lmaskexplocalcurve2, localmaskexputili,
|
lmaskexplocalcurve2, localmaskexputili,
|
||||||
lmaskSHlocalcurve2, localmaskSHutili,
|
lmaskSHlocalcurve2, localmaskSHutili,
|
||||||
lmasktmlocalcurve2, localmasktmutili,
|
lmasktmlocalcurve2, localmasktmutili,
|
||||||
|
lmaskretilocalcurve2, localmaskretiutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1083,6 +1089,7 @@ void Crop::update(int todo)
|
|||||||
lmaskexplocalcurve2.clear();
|
lmaskexplocalcurve2.clear();
|
||||||
lmaskSHlocalcurve2.clear();
|
lmaskSHlocalcurve2.clear();
|
||||||
lmasktmlocalcurve2.clear();
|
lmasktmlocalcurve2.clear();
|
||||||
|
lmaskretilocalcurve2.clear();
|
||||||
hltonecurveloc2.clear();
|
hltonecurveloc2.clear();
|
||||||
shtonecurveloc2.clear();
|
shtonecurveloc2.clear();
|
||||||
tonecurveloc2.clear();
|
tonecurveloc2.clear();
|
||||||
|
@ -175,6 +175,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
lmaskexplocalcurve(65536, 0),
|
lmaskexplocalcurve(65536, 0),
|
||||||
lmaskSHlocalcurve(65536, 0),
|
lmaskSHlocalcurve(65536, 0),
|
||||||
lmasktmlocalcurve(65536, 0),
|
lmasktmlocalcurve(65536, 0),
|
||||||
|
lmaskretilocalcurve(65536, 0),
|
||||||
locallutili(false),
|
locallutili(false),
|
||||||
localcutili(false),
|
localcutili(false),
|
||||||
localexutili(false),
|
localexutili(false),
|
||||||
@ -185,6 +186,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
localmaskexputili(false),
|
localmaskexputili(false),
|
||||||
localmaskSHutili(false),
|
localmaskSHutili(false),
|
||||||
localmasktmutili(false),
|
localmasktmutili(false),
|
||||||
|
localmaskretiutili(false),
|
||||||
lcmasexputili(false),
|
lcmasexputili(false),
|
||||||
lhmasexputili(false),
|
lhmasexputili(false),
|
||||||
llmasexputili(false),
|
llmasexputili(false),
|
||||||
@ -929,6 +931,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
localmaskexputili = false;
|
localmaskexputili = false;
|
||||||
localmaskSHutili = false;
|
localmaskSHutili = false;
|
||||||
localmasktmutili = false;
|
localmasktmutili = false;
|
||||||
|
localmaskretiutili = false;
|
||||||
lcmasSHutili = false;
|
lcmasSHutili = false;
|
||||||
lhmasSHutili = false;
|
lhmasSHutili = false;
|
||||||
llmasSHutili = false;
|
llmasSHutili = false;
|
||||||
@ -980,6 +983,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
CurveFactory::curvemaskLocal(localmaskexputili, params->locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskexputili, params->locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmaskSHutili, params->locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskSHutili, params->locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmasktmutili, params->locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmasktmutili, params->locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve, sca);
|
||||||
|
CurveFactory::curvemaskLocal(localmaskretiutili, params->locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve, 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;
|
||||||
@ -1037,6 +1041,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmaskexplocalcurve, localmaskexputili,
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
lmaskSHlocalcurve, localmaskSHutili,
|
lmaskSHlocalcurve, localmaskSHutili,
|
||||||
lmasktmlocalcurve, localmasktmutili,
|
lmasktmlocalcurve, localmasktmutili,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1057,6 +1062,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmaskexplocalcurve, localmaskexputili,
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
lmaskSHlocalcurve, localmaskSHutili,
|
lmaskSHlocalcurve, localmaskSHutili,
|
||||||
lmasktmlocalcurve, localmasktmutili,
|
lmasktmlocalcurve, localmasktmutili,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1083,6 +1089,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmaskexplocalcurve.clear();
|
lmaskexplocalcurve.clear();
|
||||||
lmaskSHlocalcurve.clear();
|
lmaskSHlocalcurve.clear();
|
||||||
lmasktmlocalcurve.clear();
|
lmasktmlocalcurve.clear();
|
||||||
|
lmaskretilocalcurve.clear();
|
||||||
hltonecurveloc.clear();
|
hltonecurveloc.clear();
|
||||||
shtonecurveloc.clear();
|
shtonecurveloc.clear();
|
||||||
tonecurveloc.clear();
|
tonecurveloc.clear();
|
||||||
|
@ -237,6 +237,7 @@ protected:
|
|||||||
LUTf lmaskexplocalcurve;
|
LUTf lmaskexplocalcurve;
|
||||||
LUTf lmaskSHlocalcurve;
|
LUTf lmaskSHlocalcurve;
|
||||||
LUTf lmasktmlocalcurve;
|
LUTf lmasktmlocalcurve;
|
||||||
|
LUTf lmaskretilocalcurve;
|
||||||
// LUTu lhist16loc;
|
// LUTu lhist16loc;
|
||||||
LocretigainCurve locRETgainCurve;
|
LocretigainCurve locRETgainCurve;
|
||||||
LocretitransCurve locRETtransCurve;
|
LocretitransCurve locRETtransCurve;
|
||||||
@ -276,6 +277,7 @@ protected:
|
|||||||
bool localmaskexputili;
|
bool localmaskexputili;
|
||||||
bool localmaskSHutili;
|
bool localmaskSHutili;
|
||||||
bool localmasktmutili;
|
bool localmasktmutili;
|
||||||
|
bool localmaskretiutili;
|
||||||
bool lcmasexputili;
|
bool lcmasexputili;
|
||||||
bool lhmasexputili;
|
bool lhmasexputili;
|
||||||
bool llmasexputili;
|
bool llmasexputili;
|
||||||
|
@ -205,12 +205,22 @@ public:
|
|||||||
void fftw_convol_blur(float *input, float *output, int bfw, int bfh, float radius, int fftkern, int algo);
|
void fftw_convol_blur(float *input, float *output, int bfw, int bfh, float radius, int fftkern, int algo);
|
||||||
void fftw_convol_blur2(float **input2, float **output2, int bfw, int bfh, float radius, int fftkern, int algo);
|
void fftw_convol_blur2(float **input2, float **output2, int bfw, int bfh, float radius, int fftkern, int algo);
|
||||||
void fftw_tile_blur(int GW, int GH, int tilssize , int max_numblox_W, int min_numblox_W, float **tmp1, int numThreads, double radius);
|
void fftw_tile_blur(int GW, int GH, int tilssize , int max_numblox_W, int min_numblox_W, float **tmp1, int numThreads, double radius);
|
||||||
void maskforretinex(int sp, int before, float ** luminance, float ** out, int W_L, int H_L, int skip, const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili, int llretiMask, bool retiMasktmap, bool retiMask,
|
|
||||||
float rad, float lap, bool pde, float gamm, float slop, float chro, float blend, LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, bool multiThread);
|
void maskforretinex(int sp, int before, float ** luminance, float ** out, int W_L, int H_L, int skip,
|
||||||
|
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
|
int llretiMask, bool retiMasktmap, bool retiMask, float rad, float lap, bool pde, float gamm, float slop, float chro, float blend,
|
||||||
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
|
LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, bool multiThread);
|
||||||
|
|
||||||
void filmGrain(Imagefloat *rgb, int isogr, int strengr, int scalegr, int bfw, int bfh);
|
void filmGrain(Imagefloat *rgb, int isogr, int strengr, int scalegr, int bfw, int bfh);
|
||||||
|
|
||||||
void MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, float** luminance, float** templ, const float* const *originalLuminance, const int width, const int height, int bfwr, int bfhr, const procparams::LocallabParams &loc, const int skip, const LocretigainCurve &locRETgainCcurve, const LocretitransCurve &locRETtransCcurve, const int chrome, const int scall, const float krad, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax,
|
void MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, float** luminance, float** templ, const float* const *originalLuminance,
|
||||||
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili, int llretiMask, LabImage * transformed, bool retiMasktmap, bool retiMask);
|
const int width, const int height, int bfwr, int bfhr, const procparams::LocallabParams &loc, const int skip, const LocretigainCurve &locRETgainCcurve, const LocretitransCurve &locRETtransCcurve,
|
||||||
|
const int chrome, const int scall, const float krad, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax,
|
||||||
|
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili, int llretiMask,
|
||||||
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
|
LabImage * transformed, bool retiMasktmap, bool retiMask);
|
||||||
|
|
||||||
void calc_ref(int sp, LabImage* original, LabImage* transformed, int cx, int cy, int oW, int oH, int sk, double &huerefblur, double &chromarefblur, double &lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, float &avg);
|
void calc_ref(int sp, LabImage* original, LabImage* transformed, int cx, int cy, int oW, int oH, int sk, double &huerefblur, double &chromarefblur, double &lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, float &avg);
|
||||||
void copy_ref(LabImage* spotbuffer, LabImage* original, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp, double &huerefspot, double &chromarefspot, double &lumarefspot);
|
void copy_ref(LabImage* spotbuffer, LabImage* original, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp, double &huerefspot, double &chromarefspot, double &lumarefspot);
|
||||||
void paste_ref(LabImage* spotbuffer, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp);
|
void paste_ref(LabImage* spotbuffer, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp);
|
||||||
@ -219,6 +229,7 @@ public:
|
|||||||
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
||||||
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
||||||
LUTf & lmasktmlocalcurve, bool & localmasktmutili,
|
LUTf & lmasktmlocalcurve, bool & localmasktmutili,
|
||||||
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
||||||
const LocCCmaskCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
const LocCCmaskCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
||||||
const LocCCmaskCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
|
@ -6716,6 +6716,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
||||||
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
||||||
LUTf & lmasktmlocalcurve, bool & localmasktmutili,
|
LUTf & lmasktmlocalcurve, bool & localmasktmutili,
|
||||||
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
||||||
const LocCCmaskCurve & locccmasexpCurve, bool & lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool & llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
const LocCCmaskCurve & locccmasexpCurve, bool & lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool & llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
||||||
const LocCCmaskCurve & locccmasSHCurve, bool & lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool & llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskCurve & locccmasSHCurve, bool & lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool & llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
@ -9255,8 +9256,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
bool fftw = lp.ftwreti;
|
bool fftw = lp.ftwreti;
|
||||||
//fftw = false;
|
//fftw = false;
|
||||||
//for Retinex Mask are incorporated in MSR
|
//for Retinex Mask are incorporated in MSR
|
||||||
ImProcFunctions::MSRLocal(sp, fftw, 1, reducDE, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1, Wd, Hd, Wd, Hd, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 0, 4, 1.f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
ImProcFunctions::MSRLocal(sp, fftw, 1, reducDE, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1,
|
||||||
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask, transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
Wd, Hd, Wd, Hd, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 0, 4, 1.f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||||
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
|
transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel for
|
#pragma omp parallel for
|
||||||
#endif
|
#endif
|
||||||
@ -9383,8 +9387,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
bool fftw = false;
|
bool fftw = false;
|
||||||
|
|
||||||
if (params->locallab.spots.at(sp).chrrt > 40.f) { //second step active Retinex Chroma
|
if (params->locallab.spots.at(sp).chrrt > 40.f) { //second step active Retinex Chroma
|
||||||
ImProcFunctions::MSRLocal(sp, fftw, 0, nullptr, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1, Wd, Hd, Wd, Hd, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 1, 4, 0.8f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
ImProcFunctions::MSRLocal(sp, fftw, 0, nullptr, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1,
|
||||||
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask, transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
Wd, Hd, Wd, Hd, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 1, 4, 0.8f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||||
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
|
transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lp.invret && call == 1) {
|
if (!lp.invret && call == 1) {
|
||||||
@ -9760,8 +9767,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
bool fftw = lp.ftwreti;
|
bool fftw = lp.ftwreti;
|
||||||
//for Retinex Mask are incorporated in MSR
|
//for Retinex Mask are incorporated in MSR
|
||||||
|
|
||||||
ImProcFunctions::MSRLocal(sp, fftw, 1, reducDE, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1, Wd, Hd, bfwr, bfhr, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 0, 4, 1.f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
ImProcFunctions::MSRLocal(sp, fftw, 1, reducDE, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1,
|
||||||
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask, transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
Wd, Hd, bfwr, bfhr, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 0, 4, 1.f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||||
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
|
transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel for
|
#pragma omp parallel for
|
||||||
@ -9902,8 +9912,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
bool fftw = false;
|
bool fftw = false;
|
||||||
|
|
||||||
if (params->locallab.spots.at(sp).chrrt > 40.f) { //second step active Retinex Chroma
|
if (params->locallab.spots.at(sp).chrrt > 40.f) { //second step active Retinex Chroma
|
||||||
ImProcFunctions::MSRLocal(sp, fftw, 0, nullptr, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1, Wd, Hd, Wd, Hd, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 1, 4, 0.8f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
ImProcFunctions::MSRLocal(sp, fftw, 0, nullptr, bufreti, bufmask, buforig, buforigmas, orig, tmpl->L, orig1,
|
||||||
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask, transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
Wd, Hd, Wd, Hd, params->locallab, sk, locRETgainCcurve, locRETtransCcurve, 1, 4, 0.8f, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||||
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
|
transformed, lp.enaretiMasktmap, lp.enaretiMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lp.invret && call == 2) {
|
if (!lp.invret && call == 2) {
|
||||||
|
@ -850,8 +850,11 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ImProcFunctions::maskforretinex(int sp, int before, float ** luminance, float ** out, int W_L, int H_L, int skip, const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili, int llretiMask, bool retiMasktmap, bool retiMask,
|
void ImProcFunctions::maskforretinex(int sp, int before, float ** luminance, float ** out, int W_L, int H_L, int skip,
|
||||||
float rad, float lap, bool pde, float gamm, float slop, float chro, float blend, LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, bool multiThread)
|
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili,
|
||||||
|
int llretiMask, bool retiMasktmap, bool retiMask, float rad, float lap, bool pde, float gamm, float slop, float chro, float blend,
|
||||||
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
|
LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, bool multiThread)
|
||||||
{
|
{
|
||||||
array2D<float> loctemp(W_L, H_L);
|
array2D<float> loctemp(W_L, H_L);
|
||||||
array2D<float> ble(W_L, H_L);
|
array2D<float> ble(W_L, H_L);
|
||||||
@ -952,6 +955,18 @@ void ImProcFunctions::maskforretinex(int sp, int before, float ** luminance, flo
|
|||||||
bufmaskblurreti->L[ir][jr] = lutTonemaskreti[L_];
|
bufmaskblurreti->L[ir][jr] = lutTonemaskreti[L_];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lmaskretilocalcurve && localmaskretiutili) {
|
||||||
|
#ifdef _OPENMP
|
||||||
|
#pragma omp parallel for schedule(dynamic,16)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (int ir = 0; ir < H_L; ir++)
|
||||||
|
for (int jr = 0; jr < W_L; jr++) {
|
||||||
|
bufmaskblurreti->L[ir][jr] = 0.5f * lmaskretilocalcurve[2.f * bufmaskblurreti->L[ir][jr]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (lap > 0.f) {
|
if (lap > 0.f) {
|
||||||
float *datain = new float[H_L * W_L];
|
float *datain = new float[H_L * W_L];
|
||||||
float *data_tmp = new float[H_L * W_L];
|
float *data_tmp = new float[H_L * W_L];
|
||||||
@ -1079,8 +1094,14 @@ void ImProcFunctions::maskforretinex(int sp, int before, float ** luminance, flo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, float** luminance, float** templ, const float* const *originalLuminance, const int width, const int height, int bfwr, int bfhr, const LocallabParams &loc, const int skip, const LocretigainCurve &locRETgainCcurve, const LocretitransCurve &locRETtransCcurve, const int chrome, const int scall, const float krad, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax,
|
|
||||||
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili, int llretiMask, LabImage * transformed, bool retiMasktmap, bool retiMask)
|
void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabImage * bufreti, LabImage * bufmask, LabImage * buforig, LabImage * buforigmas, float** luminance, float** templ, const float* const *originalLuminance,
|
||||||
|
const int width, const int height, int bfwr, int bfhr, const procparams::LocallabParams &loc, const int skip, const LocretigainCurve &locRETgainCcurve, const LocretitransCurve &locRETtransCcurve,
|
||||||
|
const int chrome, const int scall, const float krad, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax,
|
||||||
|
const LocCCmaskCurve & locccmasretiCurve, bool &lcmasretiutili, const LocLLmaskCurve & locllmasretiCurve, bool &llmasretiutili, const LocHHmaskCurve & lochhmasretiCurve, bool & lhmasretiutili, int llretiMask,
|
||||||
|
LUTf & lmaskretilocalcurve, bool & localmaskretiutili,
|
||||||
|
LabImage * transformed, bool retiMasktmap, bool retiMask)
|
||||||
|
|
||||||
{
|
{
|
||||||
BENCHFUN
|
BENCHFUN
|
||||||
bool py = true;
|
bool py = true;
|
||||||
@ -1611,8 +1632,11 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
|
|
||||||
if (lum == 1 && (llretiMask == 3 || llretiMask == 0 || llretiMask == 2 || llretiMask == 4)) { //only mask with luminance on last scale
|
if (lum == 1 && (llretiMask == 3 || llretiMask == 0 || llretiMask == 2 || llretiMask == 4)) { //only mask with luminance on last scale
|
||||||
int before = 1;
|
int before = 1;
|
||||||
maskforretinex(sp, before, luminance, nullptr, W_L, H_L, skip, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask, retiMasktmap, retiMask,
|
maskforretinex(sp, before, luminance, nullptr, W_L, H_L, skip,
|
||||||
rad, lap, pde, gamm, slop, chro, blend, bufreti, bufmask, buforig, buforigmas, multiThread);
|
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, llretiMask, retiMasktmap, retiMask,
|
||||||
|
rad, lap, pde, gamm, slop, chro, blend,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
|
bufreti, bufmask, buforig, buforigmas, multiThread);
|
||||||
}
|
}
|
||||||
|
|
||||||
//mask does not interfered with datas displayed
|
//mask does not interfered with datas displayed
|
||||||
|
@ -800,6 +800,7 @@ enum ProcEventCode {
|
|||||||
EvlocallabLmaskexpshape = 770,
|
EvlocallabLmaskexpshape = 770,
|
||||||
EvlocallabLmaskSHshape = 771,
|
EvlocallabLmaskSHshape = 771,
|
||||||
EvlocallabLmasktmshape = 772,
|
EvlocallabLmasktmshape = 772,
|
||||||
|
EvlocallabLmaskretishape = 773,
|
||||||
NUMOFEVENTS
|
NUMOFEVENTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2626,6 +2626,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
|||||||
limd(8.0),
|
limd(8.0),
|
||||||
cliptm(1.0),
|
cliptm(1.0),
|
||||||
fftwreti(false),
|
fftwreti(false),
|
||||||
|
Lmaskreticurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||||
// Sharpening
|
// Sharpening
|
||||||
expsharp(false),
|
expsharp(false),
|
||||||
sharcontrast(20),
|
sharcontrast(20),
|
||||||
@ -2912,6 +2913,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
|||||||
&& limd == other.limd
|
&& limd == other.limd
|
||||||
&& cliptm == other.cliptm
|
&& cliptm == other.cliptm
|
||||||
&& fftwreti == other.fftwreti
|
&& fftwreti == other.fftwreti
|
||||||
|
&& Lmaskreticurve == other.Lmaskreticurve
|
||||||
// Sharpening
|
// Sharpening
|
||||||
&& expsharp == other.expsharp
|
&& expsharp == other.expsharp
|
||||||
&& sharcontrast == other.sharcontrast
|
&& sharcontrast == other.sharcontrast
|
||||||
@ -4184,6 +4186,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
|||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).limd, "Locallab", "Limd_" + std::to_string(i), spot.limd, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).limd, "Locallab", "Limd_" + std::to_string(i), spot.limd, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).cliptm, "Locallab", "Cliptm_" + std::to_string(i), spot.cliptm, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).cliptm, "Locallab", "Cliptm_" + std::to_string(i), spot.cliptm, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).fftwreti, "Locallab", "Fftwreti_" + std::to_string(i), spot.fftwreti, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).fftwreti, "Locallab", "Fftwreti_" + std::to_string(i), spot.fftwreti, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmaskreticurve, "Locallab", "LmaskretiCurve_" + std::to_string(i), spot.Lmaskreticurve, keyFile);
|
||||||
// Sharpening
|
// Sharpening
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expsharp, "Locallab", "Expsharp_" + std::to_string(i), spot.expsharp, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expsharp, "Locallab", "Expsharp_" + std::to_string(i), spot.expsharp, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sharcontrast, "Locallab", "Sharcontrast_" + std::to_string(i), spot.sharcontrast, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sharcontrast, "Locallab", "Sharcontrast_" + std::to_string(i), spot.sharcontrast, keyFile);
|
||||||
@ -5583,6 +5586,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
assignFromKeyfile(keyFile, "Locallab", "Limd_" + std::to_string(i), pedited, spot.limd, spotEdited.limd);
|
assignFromKeyfile(keyFile, "Locallab", "Limd_" + std::to_string(i), pedited, spot.limd, spotEdited.limd);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Cliptm_" + std::to_string(i), pedited, spot.cliptm, spotEdited.cliptm);
|
assignFromKeyfile(keyFile, "Locallab", "Cliptm_" + std::to_string(i), pedited, spot.cliptm, spotEdited.cliptm);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Fftwreti_" + std::to_string(i), pedited, spot.fftwreti, spotEdited.fftwreti);
|
assignFromKeyfile(keyFile, "Locallab", "Fftwreti_" + std::to_string(i), pedited, spot.fftwreti, spotEdited.fftwreti);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "LmaskretiCurve_" + std::to_string(i), pedited, spot.Lmaskreticurve, spotEdited.Lmaskreticurve);
|
||||||
// Sharpening
|
// Sharpening
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Expsharp_" + std::to_string(i), pedited, spot.expsharp, spotEdited.expsharp);
|
assignFromKeyfile(keyFile, "Locallab", "Expsharp_" + std::to_string(i), pedited, spot.expsharp, spotEdited.expsharp);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Sharcontrast_" + std::to_string(i), pedited, spot.sharcontrast, spotEdited.sharcontrast);
|
assignFromKeyfile(keyFile, "Locallab", "Sharcontrast_" + std::to_string(i), pedited, spot.sharcontrast, spotEdited.sharcontrast);
|
||||||
|
@ -1175,6 +1175,7 @@ struct LocallabParams {
|
|||||||
double limd;
|
double limd;
|
||||||
double cliptm;
|
double cliptm;
|
||||||
bool fftwreti;
|
bool fftwreti;
|
||||||
|
std::vector<double> Lmaskreticurve;
|
||||||
// Sharpening
|
// Sharpening
|
||||||
bool expsharp;
|
bool expsharp;
|
||||||
int sharcontrast;
|
int sharcontrast;
|
||||||
|
@ -799,7 +799,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
|||||||
LUMINANCECURVE, //EvlocallabLmaskshape
|
LUMINANCECURVE, //EvlocallabLmaskshape
|
||||||
LUMINANCECURVE, //EvlocallabLmaskexpshape
|
LUMINANCECURVE, //EvlocallabLmaskexpshape
|
||||||
LUMINANCECURVE, //EvlocallabLmaskSHshape
|
LUMINANCECURVE, //EvlocallabLmaskSHshape
|
||||||
LUMINANCECURVE //EvlocallabLmasktmshape
|
LUMINANCECURVE, //EvlocallabLmasktmshape
|
||||||
|
LUMINANCECURVE //EvlocallabLmaskretishape
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace rtengine
|
namespace rtengine
|
||||||
|
@ -1128,6 +1128,7 @@ private:
|
|||||||
LUTf lmaskexplocalcurve(65536, 0);
|
LUTf lmaskexplocalcurve(65536, 0);
|
||||||
LUTf lmaskSHlocalcurve(65536, 0);
|
LUTf lmaskSHlocalcurve(65536, 0);
|
||||||
LUTf lmasktmlocalcurve(65536, 0);
|
LUTf lmasktmlocalcurve(65536, 0);
|
||||||
|
LUTf lmaskretilocalcurve(65536, 0);
|
||||||
|
|
||||||
// int maxspot = 1;
|
// int maxspot = 1;
|
||||||
float** shbuffer = nullptr;
|
float** shbuffer = nullptr;
|
||||||
@ -1154,6 +1155,7 @@ private:
|
|||||||
bool localmaskexputili = false;
|
bool localmaskexputili = false;
|
||||||
bool localmaskSHutili = false;
|
bool localmaskSHutili = false;
|
||||||
bool localmasktmutili = false;
|
bool localmasktmutili = false;
|
||||||
|
bool localmaskretiutili = false;
|
||||||
bool lcmasexputili = false;
|
bool lcmasexputili = false;
|
||||||
bool lhmasexputili = false;
|
bool lhmasexputili = false;
|
||||||
bool llmasexputili = false;
|
bool llmasexputili = false;
|
||||||
@ -1206,6 +1208,7 @@ private:
|
|||||||
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmasktmutili, params.locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmasktmutili, params.locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve, 1);
|
||||||
|
CurveFactory::curvemaskLocal(localmaskretiutili, params.locallab.spots.at(sp).Lmaskreticurve, lmaskretilocalcurve, 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;
|
||||||
@ -1244,6 +1247,7 @@ private:
|
|||||||
lmaskexplocalcurve, localmaskexputili,
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
lmaskSHlocalcurve, localmaskSHutili,
|
lmaskSHlocalcurve, localmaskSHutili,
|
||||||
lmasktmlocalcurve, localmasktmutili,
|
lmasktmlocalcurve, localmasktmutili,
|
||||||
|
lmaskretilocalcurve, localmaskretiutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1264,6 +1268,8 @@ private:
|
|||||||
lmasklocalcurve.clear();
|
lmasklocalcurve.clear();
|
||||||
lmaskexplocalcurve.clear();
|
lmaskexplocalcurve.clear();
|
||||||
lmaskSHlocalcurve.clear();
|
lmaskSHlocalcurve.clear();
|
||||||
|
lmasktmlocalcurve.clear();
|
||||||
|
lmaskretilocalcurve.clear();
|
||||||
shtonecurveloc.clear();
|
shtonecurveloc.clear();
|
||||||
tonecurveloc.clear();
|
tonecurveloc.clear();
|
||||||
lightCurveloc.clear();
|
lightCurveloc.clear();
|
||||||
|
@ -175,6 +175,7 @@ Locallab::Locallab():
|
|||||||
LocalcurveEditortransT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONMAP"))),
|
LocalcurveEditortransT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONMAP"))),
|
||||||
LocalcurveEditorgainT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONGAIN"))),
|
LocalcurveEditorgainT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONGAIN"))),
|
||||||
maskretiCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
maskretiCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
|
mask2retiCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
||||||
//Local contrast
|
//Local contrast
|
||||||
LocalcurveEditorwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAV"))),
|
LocalcurveEditorwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAV"))),
|
||||||
|
|
||||||
@ -1367,9 +1368,6 @@ Locallab::Locallab():
|
|||||||
Lmasktmshape->setLeftBarBgGradient(mLmasktmshape);
|
Lmasktmshape->setLeftBarBgGradient(mLmasktmshape);
|
||||||
mask2tmCurveEditorG->curveListComplete();
|
mask2tmCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enatmMaskConn = enatmMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskChanged));
|
enatmMaskConn = enatmMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskChanged));
|
||||||
enatmMaskaftConn = enatmMaskaft->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskaftChanged));
|
enatmMaskaftConn = enatmMaskaft->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskaftChanged));
|
||||||
|
|
||||||
@ -1594,6 +1592,22 @@ Locallab::Locallab():
|
|||||||
HHmaskretishape->setBottomBarColorProvider(this, 6);
|
HHmaskretishape->setBottomBarColorProvider(this, 6);
|
||||||
|
|
||||||
maskretiCurveEditorG->curveListComplete();
|
maskretiCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
mask2retiCurveEditorG->setCurveListener(this);
|
||||||
|
Lmaskretishape = static_cast<DiagonalCurveEditor*>(mask2retiCurveEditorG->addCurve(CT_Diagonal, "L(L)"));
|
||||||
|
Lmaskretishape->setResetCurve(DiagonalCurveType(defSpot.Lmaskreticurve.at(0)), defSpot.Lmaskreticurve);
|
||||||
|
|
||||||
|
if (showtooltip) {
|
||||||
|
Lmaskretishape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<GradientMilestone> mLmaskretishape;
|
||||||
|
mLmaskretishape.push_back(GradientMilestone(0., 0., 0., 0.));
|
||||||
|
mLmaskretishape.push_back(GradientMilestone(1., 1., 1., 1.));
|
||||||
|
Lmaskretishape->setBottomBarBgGradient(mLmaskretishape);
|
||||||
|
Lmaskretishape->setLeftBarBgGradient(mLmaskretishape);
|
||||||
|
mask2retiCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
enaretiMaskConn = enaretiMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enaretiMaskChanged));
|
enaretiMaskConn = enaretiMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enaretiMaskChanged));
|
||||||
enaretiMasktmapConn = enaretiMasktmap->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enaretiMasktmapChanged));
|
enaretiMasktmapConn = enaretiMasktmap->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enaretiMasktmapChanged));
|
||||||
|
|
||||||
@ -1645,6 +1659,7 @@ Locallab::Locallab():
|
|||||||
maskretiBox->pack_start(*chromaskreti, Gtk::PACK_SHRINK, 0);
|
maskretiBox->pack_start(*chromaskreti, Gtk::PACK_SHRINK, 0);
|
||||||
maskretiBox->pack_start(*gammaskreti, Gtk::PACK_SHRINK, 0);
|
maskretiBox->pack_start(*gammaskreti, Gtk::PACK_SHRINK, 0);
|
||||||
maskretiBox->pack_start(*slomaskreti, Gtk::PACK_SHRINK, 0);
|
maskretiBox->pack_start(*slomaskreti, Gtk::PACK_SHRINK, 0);
|
||||||
|
maskretiBox->pack_start(*mask2retiCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||||
expmaskreti->add(*maskretiBox, false);
|
expmaskreti->add(*maskretiBox, false);
|
||||||
ToolParamBlock* const auxBox = Gtk::manage(new ToolParamBlock());
|
ToolParamBlock* const auxBox = Gtk::manage(new ToolParamBlock());
|
||||||
|
|
||||||
@ -2299,6 +2314,7 @@ Locallab::~Locallab()
|
|||||||
delete masktmCurveEditorG;
|
delete masktmCurveEditorG;
|
||||||
delete maskblCurveEditorG;
|
delete maskblCurveEditorG;
|
||||||
delete maskretiCurveEditorG;
|
delete maskretiCurveEditorG;
|
||||||
|
delete mask2retiCurveEditorG;
|
||||||
delete maskcbCurveEditorG;
|
delete maskcbCurveEditorG;
|
||||||
}
|
}
|
||||||
void Locallab::foldAllButMe(GdkEventButton* event, MyExpander *expander)
|
void Locallab::foldAllButMe(GdkEventButton* event, MyExpander *expander)
|
||||||
@ -3426,6 +3442,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pp->locallab.spots.at(pp->locallab.selspot).limd = limd->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).limd = limd->getValue();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).cliptm = cliptm->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).cliptm = cliptm->getValue();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).fftwreti = fftwreti->get_active();
|
pp->locallab.spots.at(pp->locallab.selspot).fftwreti = fftwreti->get_active();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).Lmaskreticurve = Lmaskretishape->getCurve();
|
||||||
// Sharpening
|
// Sharpening
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).expsharp = expsharp->getEnabled();
|
pp->locallab.spots.at(pp->locallab.selspot).expsharp = expsharp->getEnabled();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).sharcontrast = sharcontrast->getIntValue();
|
pp->locallab.spots.at(pp->locallab.selspot).sharcontrast = sharcontrast->getIntValue();
|
||||||
@ -3720,6 +3737,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pe->locallab.spots.at(pp->locallab.selspot).limd = pe->locallab.spots.at(pp->locallab.selspot).limd || limd->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).limd = pe->locallab.spots.at(pp->locallab.selspot).limd || limd->getEditedState();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).cliptm = pe->locallab.spots.at(pp->locallab.selspot).cliptm || cliptm->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).cliptm = pe->locallab.spots.at(pp->locallab.selspot).cliptm || cliptm->getEditedState();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).fftwreti = pe->locallab.spots.at(pp->locallab.selspot).fftwreti || !fftwreti->get_inconsistent();
|
pe->locallab.spots.at(pp->locallab.selspot).fftwreti = pe->locallab.spots.at(pp->locallab.selspot).fftwreti || !fftwreti->get_inconsistent();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).Lmaskreticurve = pe->locallab.spots.at(pp->locallab.selspot).Lmaskreticurve || !Lmaskretishape->isUnChanged();
|
||||||
// Sharpening
|
// Sharpening
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).expsharp = pe->locallab.spots.at(pp->locallab.selspot).expsharp || !expsharp->get_inconsistent();
|
pe->locallab.spots.at(pp->locallab.selspot).expsharp = pe->locallab.spots.at(pp->locallab.selspot).expsharp || !expsharp->get_inconsistent();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).sharcontrast = pe->locallab.spots.at(pp->locallab.selspot).sharcontrast || sharcontrast->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).sharcontrast = pe->locallab.spots.at(pp->locallab.selspot).sharcontrast || sharcontrast->getEditedState();
|
||||||
@ -4012,6 +4030,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pedited->locallab.spots.at(pp->locallab.selspot).limd = pedited->locallab.spots.at(pp->locallab.selspot).limd || limd->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).limd = pedited->locallab.spots.at(pp->locallab.selspot).limd || limd->getEditedState();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).cliptm = pedited->locallab.spots.at(pp->locallab.selspot).cliptm || cliptm->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).cliptm = pedited->locallab.spots.at(pp->locallab.selspot).cliptm || cliptm->getEditedState();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).fftwreti = pedited->locallab.spots.at(pp->locallab.selspot).fftwreti || !fftwreti->get_inconsistent();
|
pedited->locallab.spots.at(pp->locallab.selspot).fftwreti = pedited->locallab.spots.at(pp->locallab.selspot).fftwreti || !fftwreti->get_inconsistent();
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).Lmaskreticurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmaskreticurve || !Lmaskretishape->isUnChanged();
|
||||||
// Sharpening
|
// Sharpening
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).expsharp = pedited->locallab.spots.at(pp->locallab.selspot).expsharp || !expsharp->get_inconsistent();
|
pedited->locallab.spots.at(pp->locallab.selspot).expsharp = pedited->locallab.spots.at(pp->locallab.selspot).expsharp || !expsharp->get_inconsistent();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).sharcontrast = pedited->locallab.spots.at(pp->locallab.selspot).sharcontrast || sharcontrast->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).sharcontrast = pedited->locallab.spots.at(pp->locallab.selspot).sharcontrast || sharcontrast->getEditedState();
|
||||||
@ -4410,6 +4429,12 @@ void Locallab::curveChanged(CurveEditor* ce)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ce == Lmaskretishape) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(EvlocallabLmaskretishape, M("HISTORY_CUSTOMCURVE"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Local contrast
|
// Local contrast
|
||||||
@ -8169,6 +8194,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
limd->setValue(pp->locallab.spots.at(index).limd);
|
limd->setValue(pp->locallab.spots.at(index).limd);
|
||||||
cliptm->setValue(pp->locallab.spots.at(index).cliptm);
|
cliptm->setValue(pp->locallab.spots.at(index).cliptm);
|
||||||
fftwreti->set_active(pp->locallab.spots.at(index).fftwreti);
|
fftwreti->set_active(pp->locallab.spots.at(index).fftwreti);
|
||||||
|
Lmaskretishape->setCurve(pp->locallab.spots.at(index).Lmaskreticurve);
|
||||||
|
|
||||||
// Sharpening
|
// Sharpening
|
||||||
expsharp->setEnabled(pp->locallab.spots.at(index).expsharp);
|
expsharp->setEnabled(pp->locallab.spots.at(index).expsharp);
|
||||||
@ -8513,6 +8539,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
limd->setEditedState(spotState->limd ? Edited : UnEdited);
|
limd->setEditedState(spotState->limd ? Edited : UnEdited);
|
||||||
cliptm->setEditedState(spotState->cliptm ? Edited : UnEdited);
|
cliptm->setEditedState(spotState->cliptm ? Edited : UnEdited);
|
||||||
fftwreti->set_inconsistent(multiImage && !spotState->fftwreti);
|
fftwreti->set_inconsistent(multiImage && !spotState->fftwreti);
|
||||||
|
Lmaskretishape->setUnChanged(!spotState->Lmaskreticurve);
|
||||||
|
|
||||||
// Sharpening
|
// Sharpening
|
||||||
expsharp->set_inconsistent(!spotState->expsharp);
|
expsharp->set_inconsistent(!spotState->expsharp);
|
||||||
|
@ -118,6 +118,8 @@ private:
|
|||||||
CurveEditorGroup* const LocalcurveEditortransT;
|
CurveEditorGroup* const LocalcurveEditortransT;
|
||||||
CurveEditorGroup* const LocalcurveEditorgainT;
|
CurveEditorGroup* const LocalcurveEditorgainT;
|
||||||
CurveEditorGroup* const maskretiCurveEditorG;
|
CurveEditorGroup* const maskretiCurveEditorG;
|
||||||
|
CurveEditorGroup* const mask2retiCurveEditorG;
|
||||||
|
DiagonalCurveEditor* Lmaskretishape;
|
||||||
FlatCurveEditor* cTtransshape;
|
FlatCurveEditor* cTtransshape;
|
||||||
FlatCurveEditor* cTgainshape;
|
FlatCurveEditor* cTgainshape;
|
||||||
FlatCurveEditor* CCmaskretishape;
|
FlatCurveEditor* CCmaskretishape;
|
||||||
|
@ -1166,6 +1166,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
|||||||
locallab.spots.at(j).limd = locallab.spots.at(j).limd && pSpot.limd == otherSpot.limd;
|
locallab.spots.at(j).limd = locallab.spots.at(j).limd && pSpot.limd == otherSpot.limd;
|
||||||
locallab.spots.at(j).cliptm = locallab.spots.at(j).cliptm && pSpot.cliptm == otherSpot.cliptm;
|
locallab.spots.at(j).cliptm = locallab.spots.at(j).cliptm && pSpot.cliptm == otherSpot.cliptm;
|
||||||
locallab.spots.at(j).fftwreti = locallab.spots.at(j).fftwreti && pSpot.fftwreti == otherSpot.fftwreti;
|
locallab.spots.at(j).fftwreti = locallab.spots.at(j).fftwreti && pSpot.fftwreti == otherSpot.fftwreti;
|
||||||
|
locallab.spots.at(j).Lmaskreticurve = locallab.spots.at(j).Lmaskreticurve && pSpot.Lmaskreticurve == otherSpot.Lmaskreticurve;
|
||||||
// Sharpening
|
// Sharpening
|
||||||
locallab.spots.at(j).expsharp = locallab.spots.at(j).expsharp && pSpot.expsharp == otherSpot.expsharp;
|
locallab.spots.at(j).expsharp = locallab.spots.at(j).expsharp && pSpot.expsharp == otherSpot.expsharp;
|
||||||
locallab.spots.at(j).sharcontrast = locallab.spots.at(j).sharcontrast && pSpot.sharcontrast == otherSpot.sharcontrast;
|
locallab.spots.at(j).sharcontrast = locallab.spots.at(j).sharcontrast && pSpot.sharcontrast == otherSpot.sharcontrast;
|
||||||
@ -3535,6 +3536,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
|||||||
toEdit.locallab.spots.at(i).fftwreti = mods.locallab.spots.at(i).fftwreti;
|
toEdit.locallab.spots.at(i).fftwreti = mods.locallab.spots.at(i).fftwreti;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).Lmaskreticurve) {
|
||||||
|
toEdit.locallab.spots.at(i).Lmaskreticurve = mods.locallab.spots.at(i).Lmaskreticurve;
|
||||||
|
}
|
||||||
|
|
||||||
// Sharpening
|
// Sharpening
|
||||||
if (locallab.spots.at(i).expsharp) {
|
if (locallab.spots.at(i).expsharp) {
|
||||||
toEdit.locallab.spots.at(i).expsharp = mods.locallab.spots.at(i).expsharp;
|
toEdit.locallab.spots.at(i).expsharp = mods.locallab.spots.at(i).expsharp;
|
||||||
@ -4954,6 +4959,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
|||||||
limd(v),
|
limd(v),
|
||||||
cliptm(v),
|
cliptm(v),
|
||||||
fftwreti(v),
|
fftwreti(v),
|
||||||
|
Lmaskreticurve(v),
|
||||||
// Sharpening
|
// Sharpening
|
||||||
expsharp(v),
|
expsharp(v),
|
||||||
sharcontrast(v),
|
sharcontrast(v),
|
||||||
@ -5237,6 +5243,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
|||||||
limd = v;
|
limd = v;
|
||||||
cliptm = v;
|
cliptm = v;
|
||||||
fftwreti = v;
|
fftwreti = v;
|
||||||
|
Lmaskreticurve = v;
|
||||||
// Sharpening
|
// Sharpening
|
||||||
expsharp = v;
|
expsharp = v;
|
||||||
sharcontrast = v;
|
sharcontrast = v;
|
||||||
|
@ -585,6 +585,7 @@ public:
|
|||||||
bool limd;
|
bool limd;
|
||||||
bool cliptm;
|
bool cliptm;
|
||||||
bool fftwreti;
|
bool fftwreti;
|
||||||
|
bool Lmaskreticurve;
|
||||||
// Sharpening
|
// Sharpening
|
||||||
bool expsharp;
|
bool expsharp;
|
||||||
bool sharcontrast;
|
bool sharcontrast;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user