Merge Locallab tool "Denoise" into Locallab tool "Blur & Noise"
This commit is contained in:
parent
99b4a056c8
commit
dd4eb44971
@ -2269,7 +2269,6 @@ TP_LOCALLAB_CURVENSOB2;Combined HueChroma + Contrast threshold (experimental)
|
||||
TP_LOCALLAB_DARKRETI;Darkness
|
||||
TP_LOCALLAB_LIGHTRETI;Lightness
|
||||
TP_LOCALLAB_THRESRETI;Threshold
|
||||
TP_LOCALLAB_DENOIS;Denoise
|
||||
TP_LOCALLAB_DEHAZ;Dehaze
|
||||
TP_LOCALLAB_EXPMETHOD_TOOLTIP;Standard : use an algorithm similar as main Exposure but in L*a*b* and taking account of deltaE.\n\nLaplacian & PDE : use another algorithm also with deltaE and with Poisson equation to solve Laplacian in Fourier space.\nPDE lead to very different results and needs differents settings that Standard\nMay be usefull for low exposure.\nPDE reduce artifacts and noise.
|
||||
TP_LOCALLAB_FFTW;Use Fast Fourier Transform
|
||||
@ -2426,7 +2425,7 @@ TP_LOCALLAB_VIBRANCE;Vibrance
|
||||
TP_LOCALLAB_WARM;Warm - Cool & Color artifacts
|
||||
TP_LOCALLAB_WARM_TOOLTIP;This slider use Ciecam algorithm and acts as White Balance, it can warm or cool the area selected.\nIt can also in some cases reduce color artifacts.
|
||||
TP_LOCALLAB_SPOTNAME;New Spot
|
||||
TP_LOCALLAB_BLUFR;Smooth - Blur - Grain (& additional denoise)
|
||||
TP_LOCALLAB_BLUFR;Smooth - Blur - Grain - Denoise
|
||||
TP_LOCALLAB_BLUMETHOD_TOOLTIP;To blur the background and isolate the foreground:\n*Blur the background by a RT-spot fully covering the image (high values for scope and transition) - normal or inverse.\n*Isolate the foreground by one or more excluding RT-spot with the tools you want (increse scope), you can use a mask to enhance and amplify the effects.\n\nThis module can be used in additional noise reduction,including "median" and "Guided filter"
|
||||
TP_LOCALLAB_BLUR;Gaussian Blur - Noise - Grain
|
||||
TP_LOCALLAB_BLURCBDL;Blur levels 0-1-2-3-4
|
||||
@ -2850,13 +2849,12 @@ TP_LOCALLAB_EXP_TOOLNAME;Locallab Exposure
|
||||
TP_LOCALLAB_SH_TOOLNAME;Locallab Shadows Highlight
|
||||
TP_LOCALLAB_VIB_TOOLNAME;Locallab Vibrance
|
||||
TP_LOCALLAB_SOFT_TOOLNAME;Locallab Soft Light
|
||||
TP_LOCALLAB_BLUR_TOOLNAME;Locallab Blur & Noise
|
||||
TP_LOCALLAB_BLUR_TOOLNAME;Locallab Blur, Noise & Denoise
|
||||
TP_LOCALLAB_TONE_TOOLNAME;Locallab Tone Mapping
|
||||
TP_LOCALLAB_RET_TOOLNAME;Locallab Retinex
|
||||
TP_LOCALLAB_SHARP_TOOLNAME;Locallab Sharpening
|
||||
TP_LOCALLAB_LC_TOOLNAME;Locallab Local Constrast
|
||||
TP_LOCALLAB_CBDL_TOOLNAME;Locallab CBDL
|
||||
TP_LOCALLAB_DEN_TOOLNAME;Locallab Denoise
|
||||
TP_LOCALLAB_LOG_TOOLNAME;Locallab Encoding log
|
||||
TP_LOCALLAB_WAMASKCOL;Ψ Mask Wavelet level
|
||||
TP_LOCALLAB_WARM;Warm - Cool & Color artifacts
|
||||
@ -2877,6 +2875,8 @@ TP_LOCALLAB_WAVMASK;Ψ Mask Levels local contrast
|
||||
TP_LOCALLAB_WAVMED;Ψ Wavelet normal
|
||||
TP_LOCALLAB_WEDIANHI;Median Hi
|
||||
TP_LOCALLAB_WHITE_EV;White Ev
|
||||
TP_LOCALLAB_BLNOI_EXP;Blur & Noise
|
||||
TP_LOCALLAB_DENOI_EXP;Denoise
|
||||
TP_LOCAL_HEIGHT;Bottom
|
||||
TP_LOCAL_HEIGHT_T;Top
|
||||
TP_LOCAL_WIDTH;Right
|
||||
|
@ -794,7 +794,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.shapmet = 1;
|
||||
}
|
||||
|
||||
lp.denoiena = locallab.spots.at(sp).expdenoi;
|
||||
lp.denoiena = locallab.spots.at(sp).expblur;
|
||||
|
||||
bool wavcurveden = false;
|
||||
float local_noiself = 0.f;
|
||||
|
@ -602,7 +602,7 @@ enum ProcEventCode {
|
||||
Evlocallabchromacbdl = 576,
|
||||
EvlocallabThresho = 577,
|
||||
Evlocallabsensicb = 578,
|
||||
EvLocenadenoi = 579,
|
||||
// EvLocenadenoi = 579,
|
||||
Evlocallabnoiselumf = 580,
|
||||
Evlocallabnoiselumc = 581,
|
||||
Evlocallabnoiselumdetail = 582,
|
||||
|
@ -2636,6 +2636,20 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
blurMethod("norm"),
|
||||
medMethod("33"),
|
||||
activlum(true),
|
||||
noiselumf(0.),
|
||||
noiselumf0(0.),
|
||||
noiselumf2(0.),
|
||||
noiselumc(0.),
|
||||
noiselumdetail(0.),
|
||||
noiselequal(7),
|
||||
noisechrof(0.),
|
||||
noisechroc(0.),
|
||||
noisechrodetail(0.),
|
||||
adjblur(0),
|
||||
bilateral(0),
|
||||
sensiden(20),
|
||||
detailthr(0),
|
||||
locwavcurveden{(double)FCT_MinMaxCPoints, 0.0, 0.0, 0.0, 0.35, 0.5, 0., 0.35, 0.35, 1.0, 0.0, 0.35, 0.35},
|
||||
CCmaskblcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
LLmaskblcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
HHmaskblcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
@ -2811,23 +2825,6 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
slomaskcb(0.0),
|
||||
lapmaskcb(0.0),
|
||||
Lmaskcbcurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||
// Denoise
|
||||
visidenoi(false),
|
||||
expdenoi(false),
|
||||
noiselumf(0.),
|
||||
noiselumf0(0.),
|
||||
noiselumf2(0.),
|
||||
noiselumc(0.),
|
||||
noiselumdetail(0.),
|
||||
noiselequal(7),
|
||||
noisechrof(0.),
|
||||
noisechroc(0.),
|
||||
noisechrodetail(0.),
|
||||
adjblur(0),
|
||||
bilateral(0),
|
||||
sensiden(20),
|
||||
detailthr(0),
|
||||
locwavcurveden{(double)FCT_MinMaxCPoints, 0.0, 0.0, 0.0, 0.35, 0.5, 0., 0.35, 0.35, 1.0, 0.0, 0.35, 0.35},
|
||||
// Log encoding
|
||||
visilog(false),
|
||||
explog(false),
|
||||
@ -3081,6 +3078,20 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& blurMethod == other.blurMethod
|
||||
&& medMethod == other.medMethod
|
||||
&& activlum == other.activlum
|
||||
&& noiselumf == other.noiselumf
|
||||
&& noiselumf0 == other.noiselumf0
|
||||
&& noiselumf2 == other.noiselumf2
|
||||
&& noiselumc == other.noiselumc
|
||||
&& noiselumdetail == other.noiselumdetail
|
||||
&& noiselequal == other.noiselequal
|
||||
&& noisechrof == other.noisechrof
|
||||
&& noisechroc == other.noisechroc
|
||||
&& noisechrodetail == other.noisechrodetail
|
||||
&& adjblur == other.adjblur
|
||||
&& bilateral == other.bilateral
|
||||
&& sensiden == other.sensiden
|
||||
&& detailthr == other.detailthr
|
||||
&& locwavcurveden == other.locwavcurveden
|
||||
&& CCmaskblcurve == other.CCmaskblcurve
|
||||
&& LLmaskblcurve == other.LLmaskblcurve
|
||||
&& HHmaskblcurve == other.HHmaskblcurve
|
||||
@ -3265,23 +3276,6 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& slomaskcb == other.slomaskcb
|
||||
&& lapmaskcb == other.lapmaskcb
|
||||
&& Lmaskcbcurve == other.Lmaskcbcurve
|
||||
// Denoise
|
||||
&& visidenoi == other.visidenoi
|
||||
&& expdenoi == other.expdenoi
|
||||
&& noiselumf == other.noiselumf
|
||||
&& noiselumf0 == other.noiselumf0
|
||||
&& noiselumf2 == other.noiselumf2
|
||||
&& noiselumc == other.noiselumc
|
||||
&& noiselumdetail == other.noiselumdetail
|
||||
&& noiselequal == other.noiselequal
|
||||
&& noisechrof == other.noisechrof
|
||||
&& noisechroc == other.noisechroc
|
||||
&& noisechrodetail == other.noisechrodetail
|
||||
&& adjblur == other.adjblur
|
||||
&& bilateral == other.bilateral
|
||||
&& sensiden == other.sensiden
|
||||
&& detailthr == other.detailthr
|
||||
&& locwavcurveden == other.locwavcurveden
|
||||
// Log encoding
|
||||
&& visilog == other.visilog
|
||||
&& explog == other.explog
|
||||
@ -4509,6 +4503,20 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blurMethod, "Locallab", "BlurMethod_" + std::to_string(i), spot.blurMethod, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).medMethod, "Locallab", "MedMethod_" + std::to_string(i), spot.medMethod, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).activlum, "Locallab", "activlum_" + std::to_string(i), spot.activlum, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumf, "Locallab", "noiselumf_" + std::to_string(i), spot.noiselumf, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumf0, "Locallab", "noiselumf0_" + std::to_string(i), spot.noiselumf0, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumf2, "Locallab", "noiselumf2_" + std::to_string(i), spot.noiselumf2, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumc, "Locallab", "noiselumc_" + std::to_string(i), spot.noiselumc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumdetail, "Locallab", "noiselumdetail_" + std::to_string(i), spot.noiselumdetail, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselequal, "Locallab", "noiselequal_" + std::to_string(i), spot.noiselequal, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noisechrof, "Locallab", "noisechrof_" + std::to_string(i), spot.noisechrof, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noisechroc, "Locallab", "noisechroc_" + std::to_string(i), spot.noisechroc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noisechrodetail, "Locallab", "noisechrodetail_" + std::to_string(i), spot.noisechrodetail, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).adjblur, "Locallab", "Adjblur_" + std::to_string(i), spot.adjblur, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).bilateral, "Locallab", "Bilateral_" + std::to_string(i), spot.bilateral, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensiden, "Locallab", "Sensiden_" + std::to_string(i), spot.sensiden, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).detailthr, "Locallab", "Detailthr_" + std::to_string(i), spot.detailthr, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).locwavcurveden, "Locallab", "LocwavCurveden_" + std::to_string(i), spot.locwavcurveden, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).CCmaskblcurve, "Locallab", "CCmaskblCurve_" + std::to_string(i), spot.CCmaskblcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmaskblcurve, "Locallab", "LLmaskblCurve_" + std::to_string(i), spot.LLmaskblcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmaskblcurve, "Locallab", "HHmaskblCurve_" + std::to_string(i), spot.HHmaskblcurve, keyFile);
|
||||
@ -4694,24 +4702,6 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmaskcb, "Locallab", "Lapmaskcb_" + std::to_string(i), spot.lapmaskcb, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmaskcbcurve, "Locallab", "LmaskcbCurve_" + std::to_string(i), spot.Lmaskcbcurve, keyFile);
|
||||
}
|
||||
// Denoise
|
||||
if ((!pedited || pedited->locallab.spots.at(i).visidenoi) && spot.visidenoi) {
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expdenoi, "Locallab", "Expdenoi_" + std::to_string(i), spot.expdenoi, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumf, "Locallab", "noiselumf_" + std::to_string(i), spot.noiselumf, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumf0, "Locallab", "noiselumf0_" + std::to_string(i), spot.noiselumf0, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumf2, "Locallab", "noiselumf2_" + std::to_string(i), spot.noiselumf2, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumc, "Locallab", "noiselumc_" + std::to_string(i), spot.noiselumc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselumdetail, "Locallab", "noiselumdetail_" + std::to_string(i), spot.noiselumdetail, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noiselequal, "Locallab", "noiselequal_" + std::to_string(i), spot.noiselequal, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noisechrof, "Locallab", "noisechrof_" + std::to_string(i), spot.noisechrof, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noisechroc, "Locallab", "noisechroc_" + std::to_string(i), spot.noisechroc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).noisechrodetail, "Locallab", "noisechrodetail_" + std::to_string(i), spot.noisechrodetail, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).adjblur, "Locallab", "Adjblur_" + std::to_string(i), spot.adjblur, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).bilateral, "Locallab", "Bilateral_" + std::to_string(i), spot.bilateral, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensiden, "Locallab", "Sensiden_" + std::to_string(i), spot.sensiden, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).detailthr, "Locallab", "Detailthr_" + std::to_string(i), spot.detailthr, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).locwavcurveden, "Locallab", "LocwavCurveden_" + std::to_string(i), spot.locwavcurveden, keyFile);
|
||||
}
|
||||
// Log encoding
|
||||
if ((!pedited || pedited->locallab.spots.at(i).visilog) && spot.visilog) {
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).explog, "Locallab", "Explog_" + std::to_string(i), spot.explog, keyFile);
|
||||
@ -6102,6 +6092,20 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "BlurMethod_" + std::to_string(i), pedited, spot.blurMethod, spotEdited.blurMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "MedMethod_" + std::to_string(i), pedited, spot.medMethod, spotEdited.medMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "activlum_" + std::to_string(i), pedited, spot.activlum, spotEdited.activlum);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumf_" + std::to_string(i), pedited, spot.noiselumf, spotEdited.noiselumf);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumf0_" + std::to_string(i), pedited, spot.noiselumf0, spotEdited.noiselumf0);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumf2_" + std::to_string(i), pedited, spot.noiselumf2, spotEdited.noiselumf2);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumc_" + std::to_string(i), pedited, spot.noiselumc, spotEdited.noiselumc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumdetail_" + std::to_string(i), pedited, spot.noiselumdetail, spotEdited.noiselumdetail);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselequal_" + std::to_string(i), pedited, spot.noiselequal, spotEdited.noiselequal);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noisechrof_" + std::to_string(i), pedited, spot.noisechrof, spotEdited.noisechrof);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noisechroc_" + std::to_string(i), pedited, spot.noisechroc, spotEdited.noisechroc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noisechrodetail_" + std::to_string(i), pedited, spot.noisechrodetail, spotEdited.noisechrodetail);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Adjblur_" + std::to_string(i), pedited, spot.adjblur, spotEdited.adjblur);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Bilateral_" + std::to_string(i), pedited, spot.bilateral, spotEdited.bilateral);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sensiden_" + std::to_string(i), pedited, spot.sensiden, spotEdited.sensiden);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Detailthr_" + std::to_string(i), pedited, spot.detailthr, spotEdited.detailthr);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LocwavCurveden_" + std::to_string(i), pedited, spot.locwavcurveden, spotEdited.locwavcurveden);
|
||||
assignFromKeyfile(keyFile, "Locallab", "CCmaskblCurve_" + std::to_string(i), pedited, spot.CCmaskblcurve, spotEdited.CCmaskblcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLmaskblCurve_" + std::to_string(i), pedited, spot.LLmaskblcurve, spotEdited.LLmaskblcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "HHmaskblCurve_" + std::to_string(i), pedited, spot.HHmaskblcurve, spotEdited.HHmaskblcurve);
|
||||
@ -6266,8 +6270,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "localedgMethod_" + std::to_string(i), pedited, spot.localedgMethod, spotEdited.localedgMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "localneiMethod_" + std::to_string(i), pedited, spot.localneiMethod, spotEdited.localneiMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LocwavCurve_" + std::to_string(i), pedited, spot.locwavcurve, spotEdited.locwavcurve);
|
||||
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "LoclevwavCurve_" + std::to_string(i), pedited, spot.loclevwavcurve, spotEdited.loclevwavcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LocconwavCurve_" + std::to_string(i), pedited, spot.locconwavcurve, spotEdited.locconwavcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LoccompwavCurve_" + std::to_string(i), pedited, spot.loccompwavcurve, spotEdited.loccompwavcurve);
|
||||
@ -6322,27 +6324,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Slomaskcb_" + std::to_string(i), pedited, spot.slomaskcb, spotEdited.slomaskcb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Lapmaskcb_" + std::to_string(i), pedited, spot.lapmaskcb, spotEdited.lapmaskcb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LmaskcbCurve_" + std::to_string(i), pedited, spot.Lmaskcbcurve, spotEdited.Lmaskcbcurve);
|
||||
// Denoise
|
||||
spot.visidenoi = assignFromKeyfile(keyFile, "Locallab", "Expdenoi_" + std::to_string(i), pedited, spot.expdenoi, spotEdited.expdenoi);
|
||||
|
||||
if (spot.visidenoi) {
|
||||
spotEdited.visidenoi = true;
|
||||
}
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumf_" + std::to_string(i), pedited, spot.noiselumf, spotEdited.noiselumf);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumf0_" + std::to_string(i), pedited, spot.noiselumf0, spotEdited.noiselumf0);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumf2_" + std::to_string(i), pedited, spot.noiselumf2, spotEdited.noiselumf2);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumc_" + std::to_string(i), pedited, spot.noiselumc, spotEdited.noiselumc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselumdetail_" + std::to_string(i), pedited, spot.noiselumdetail, spotEdited.noiselumdetail);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noiselequal_" + std::to_string(i), pedited, spot.noiselequal, spotEdited.noiselequal);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noisechrof_" + std::to_string(i), pedited, spot.noisechrof, spotEdited.noisechrof);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noisechroc_" + std::to_string(i), pedited, spot.noisechroc, spotEdited.noisechroc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "noisechrodetail_" + std::to_string(i), pedited, spot.noisechrodetail, spotEdited.noisechrodetail);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Adjblur_" + std::to_string(i), pedited, spot.adjblur, spotEdited.adjblur);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Bilateral_" + std::to_string(i), pedited, spot.bilateral, spotEdited.bilateral);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sensiden_" + std::to_string(i), pedited, spot.sensiden, spotEdited.sensiden);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Detailthr_" + std::to_string(i), pedited, spot.detailthr, spotEdited.detailthr);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LocwavCurveden_" + std::to_string(i), pedited, spot.locwavcurveden, spotEdited.locwavcurveden);
|
||||
// Log encoding
|
||||
spot.visilog = assignFromKeyfile(keyFile, "Locallab", "Explog_" + std::to_string(i), pedited, spot.explog, spotEdited.explog);
|
||||
|
||||
|
@ -1179,6 +1179,20 @@ struct LocallabParams {
|
||||
Glib::ustring blurMethod; // norm, inv
|
||||
Glib::ustring medMethod; // none, 33, 55, 77, 99
|
||||
bool activlum;
|
||||
double noiselumf;
|
||||
double noiselumf0;
|
||||
double noiselumf2;
|
||||
double noiselumc;
|
||||
double noiselumdetail;
|
||||
int noiselequal;
|
||||
double noisechrof;
|
||||
double noisechroc;
|
||||
double noisechrodetail;
|
||||
int adjblur;
|
||||
int bilateral;
|
||||
int sensiden;
|
||||
int detailthr;
|
||||
std::vector<double> locwavcurveden;
|
||||
std::vector<double> CCmaskblcurve;
|
||||
std::vector<double> LLmaskblcurve;
|
||||
std::vector<double> HHmaskblcurve;
|
||||
@ -1354,23 +1368,6 @@ struct LocallabParams {
|
||||
double slomaskcb;
|
||||
double lapmaskcb;
|
||||
std::vector<double> Lmaskcbcurve;
|
||||
// Denoise
|
||||
bool visidenoi;
|
||||
bool expdenoi;
|
||||
double noiselumf;
|
||||
double noiselumf0;
|
||||
double noiselumf2;
|
||||
double noiselumc;
|
||||
double noiselumdetail;
|
||||
int noiselequal;
|
||||
double noisechrof;
|
||||
double noisechroc;
|
||||
double noisechrodetail;
|
||||
int adjblur;
|
||||
int bilateral;
|
||||
int sensiden;
|
||||
int detailthr;
|
||||
std::vector<double> locwavcurveden;
|
||||
// Log encoding
|
||||
bool visilog;
|
||||
bool explog;
|
||||
|
@ -160,7 +160,6 @@ Locallab::Locallab():
|
||||
expsharp(Gtk::manage(new LocallabSharp())),
|
||||
expcontrast(Gtk::manage(new LocallabContrast())),
|
||||
expcbdl(Gtk::manage(new LocallabCBDL())),
|
||||
expdenoi(Gtk::manage(new LocallabDenoise())),
|
||||
explog(Gtk::manage(new LocallabLog())),
|
||||
|
||||
// Other widgets
|
||||
@ -196,7 +195,6 @@ Locallab::Locallab():
|
||||
addTool(toolpanel, expsharp);
|
||||
addTool(toolpanel, expcontrast);
|
||||
addTool(toolpanel, expcbdl);
|
||||
addTool(toolpanel, expdenoi);
|
||||
addTool(toolpanel, explog);
|
||||
panel->pack_start(*toolpanel, false, false);
|
||||
|
||||
|
@ -113,7 +113,6 @@ private:
|
||||
LocallabSharp* const expsharp;
|
||||
LocallabContrast* const expcontrast;
|
||||
LocallabCBDL* const expcbdl;
|
||||
LocallabDenoise* const expdenoi;
|
||||
LocallabLog* const explog;
|
||||
|
||||
std::vector<LocallabTool*> locallabTools;
|
||||
|
@ -30,6 +30,9 @@
|
||||
#define MINRAD 1.5
|
||||
#define MAXRAD 10000
|
||||
#define CENTERRAD 100
|
||||
#define MINCHRO 0.
|
||||
#define MAXCHRO 150.
|
||||
#define MAXCHROCC 100.
|
||||
|
||||
using namespace rtengine;
|
||||
using namespace procparams;
|
||||
@ -5126,7 +5129,7 @@ void LocallabSoft::updateSoftGUI()
|
||||
LocallabBlur::LocallabBlur():
|
||||
LocallabTool(this, M("TP_LOCALLAB_BLUR_TOOLNAME"), M("TP_LOCALLAB_BLUFR"), true),
|
||||
|
||||
// Blur & Noise specific widgets
|
||||
// Blur, Noise & Denoise specific widgets
|
||||
blMethod(Gtk::manage(new MyComboBoxText())),
|
||||
fftwbl(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_FFTWBLUR")))),
|
||||
radius(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADIUS"), MINRAD, MAXRAD, 0.1, 1.5, nullptr, nullptr, &blurSlider2radius, &blurRadius2Slider))),
|
||||
@ -5144,6 +5147,21 @@ LocallabBlur::LocallabBlur():
|
||||
blurMethod(Gtk::manage(new MyComboBoxText())),
|
||||
chroMethod(Gtk::manage(new MyComboBoxText())),
|
||||
activlum(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ACTIV")))),
|
||||
LocalcurveEditorwavden(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVDEN"))),
|
||||
wavshapeden(static_cast<FlatCurveEditor*>(LocalcurveEditorwavden->addCurve(CT_Flat, "", nullptr, false, false))),
|
||||
noiselumf0(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINEZERO"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noiselumf(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINE"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noiselumf2(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINETWO"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noiselumc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMCOARSE"), MINCHRO, MAXCHROCC, 0.01, 0.))),
|
||||
noiselumdetail(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMDETAIL"), 0., 100., 0.01, 0.))),
|
||||
noiselequal(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELEQUAL"), -2, 10, 1, 7, Gtk::manage(new RTImage("circle-white-small.png")), Gtk::manage(new RTImage("circle-black-small.png"))))),
|
||||
noisechrof(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHROFINE"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noisechroc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHROCOARSE"), MINCHRO, MAXCHROCC, 0.01, 0.))),
|
||||
noisechrodetail(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHRODETAIL"), 0., 100., 0.01, 0.))),
|
||||
detailthr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DETAILTHR"), 0, 100, 1, 0))),
|
||||
adjblur(Gtk::manage(new Adjuster(M("TP_LOCALLAB_ADJ"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-red-small.png"))))),
|
||||
bilateral(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BILATERAL"), 0, 100, 1, 0))),
|
||||
sensiden(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIDEN"), 0, 100, 1, 20))),
|
||||
expmaskbl(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SHOWPLUS")))),
|
||||
showmaskblMethod(Gtk::manage(new MyComboBoxText())),
|
||||
enablMask(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ENABLE_MASK")))),
|
||||
@ -5172,10 +5190,8 @@ LocallabBlur::LocallabBlur():
|
||||
const bool showtooltip = options.showtooltip;
|
||||
const int complexsoft = options.complexity;
|
||||
|
||||
// Parameter Blur & Noise specific widgets
|
||||
if (showtooltip) {
|
||||
exp->set_tooltip_markup(M("TP_LOCALLAB_BLUMETHOD_TOOLTIP"));
|
||||
}
|
||||
// Parameter Blur, Noise & Denoise specific widgets
|
||||
|
||||
|
||||
blMethod->append(M("TP_LOCALLAB_BLUR"));
|
||||
blMethod->append(M("TP_LOCALLAB_BLMED"));
|
||||
@ -5242,6 +5258,51 @@ LocallabBlur::LocallabBlur():
|
||||
|
||||
activlumConn = activlum->signal_toggled().connect(sigc::mem_fun(*this, &LocallabBlur::activlumChanged));
|
||||
|
||||
LocalcurveEditorwavden->setCurveListener(this);
|
||||
|
||||
wavshapeden->setIdentityValue(0.);
|
||||
wavshapeden->setResetCurve(FlatCurveType(defSpot.locwavcurveden.at(0)), defSpot.locwavcurveden);
|
||||
|
||||
if (showtooltip) {
|
||||
wavshapeden->setTooltip(M("TP_LOCALLAB_WASDEN_TOOLTIP"));
|
||||
}
|
||||
|
||||
LocalcurveEditorwavden->curveListComplete();
|
||||
|
||||
noiselumf0->setAdjusterListener(this);
|
||||
|
||||
noiselumf->setAdjusterListener(this);
|
||||
|
||||
noiselumf2->setAdjusterListener(this);
|
||||
|
||||
if (showtooltip) {
|
||||
noiselumc->set_tooltip_text(M("TP_LOCALLAB_NOISECHROC_TOOLTIP"));
|
||||
}
|
||||
|
||||
noiselumc->setAdjusterListener(this);
|
||||
|
||||
noiselumdetail->setAdjusterListener(this);
|
||||
|
||||
noiselequal->setAdjusterListener(this);
|
||||
|
||||
noisechrof->setAdjusterListener(this);
|
||||
|
||||
if (showtooltip) {
|
||||
noisechroc->set_tooltip_text(M("TP_LOCALLAB_NOISECHROC_TOOLTIP"));
|
||||
}
|
||||
|
||||
noisechroc->setAdjusterListener(this);
|
||||
|
||||
noisechrodetail->setAdjusterListener(this);
|
||||
|
||||
detailthr->setAdjusterListener(this);
|
||||
|
||||
adjblur->setAdjusterListener(this);
|
||||
|
||||
bilateral->setAdjusterListener(this);
|
||||
|
||||
sensiden->setAdjusterListener(this);
|
||||
|
||||
setExpandAlignProperties(expmaskbl, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
|
||||
if (showtooltip) {
|
||||
@ -5350,30 +5411,70 @@ LocallabBlur::LocallabBlur():
|
||||
|
||||
csThresholdblur->setAdjusterListener(this);
|
||||
|
||||
// Add Blur & Noise specific widgets to GUI
|
||||
pack_start(*blMethod);
|
||||
// Add Blur, Noise & Denoise specific widgets to GUI
|
||||
MyExpander* const expblnoise = Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_BLNOI_EXP")));
|
||||
setExpandAlignProperties(expblnoise, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
|
||||
if (complexsoft < 2) {
|
||||
pack_start(*fftwbl, Gtk::PACK_SHRINK, 0);
|
||||
if (showtooltip) {
|
||||
expblnoise->set_tooltip_markup(M("TP_LOCALLAB_BLUMETHOD_TOOLTIP"));
|
||||
}
|
||||
|
||||
pack_start(*radius);
|
||||
pack_start(*strength);
|
||||
expblnoise->set_expanded(false);
|
||||
ToolParamBlock* const blnoisebox = Gtk::manage(new ToolParamBlock());
|
||||
blnoisebox->pack_start(*blMethod);
|
||||
|
||||
if (complexsoft < 2) {
|
||||
blnoisebox->pack_start(*fftwbl, Gtk::PACK_SHRINK, 0);
|
||||
}
|
||||
|
||||
blnoisebox->pack_start(*radius);
|
||||
blnoisebox->pack_start(*strength);
|
||||
ToolParamBlock* const grainBox = Gtk::manage(new ToolParamBlock());
|
||||
grainBox->pack_start(*isogr);
|
||||
grainBox->pack_start(*strengr);
|
||||
grainBox->pack_start(*scalegr);
|
||||
grainFrame->add(*grainBox);
|
||||
pack_start(*grainFrame);
|
||||
pack_start(*medMethod);
|
||||
pack_start(*itera);
|
||||
pack_start(*guidbl);
|
||||
pack_start(*strbl);
|
||||
pack_start(*epsbl);
|
||||
pack_start(*sensibn);
|
||||
pack_start(*blurMethod);
|
||||
pack_start(*chroMethod);
|
||||
// pack_start(*activlum);
|
||||
blnoisebox->pack_start(*grainFrame);
|
||||
blnoisebox->pack_start(*medMethod);
|
||||
blnoisebox->pack_start(*itera);
|
||||
blnoisebox->pack_start(*guidbl);
|
||||
blnoisebox->pack_start(*strbl);
|
||||
blnoisebox->pack_start(*epsbl);
|
||||
blnoisebox->pack_start(*sensibn);
|
||||
blnoisebox->pack_start(*blurMethod);
|
||||
blnoisebox->pack_start(*chroMethod);
|
||||
// blnoisebox->pack_start(*activlum);
|
||||
expblnoise->add(*blnoisebox, false);
|
||||
pack_start(*expblnoise);
|
||||
MyExpander* const expdenoise = Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_DENOI_EXP")));
|
||||
setExpandAlignProperties(expdenoise, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
|
||||
if (showtooltip) {
|
||||
expdenoise->set_tooltip_markup(M("TP_LOCALLAB_DENOI_TOOLTIP"));
|
||||
}
|
||||
|
||||
expdenoise->set_expanded(false);
|
||||
ToolParamBlock* const denoisebox = Gtk::manage(new ToolParamBlock());
|
||||
Gtk::Frame* const wavFrame = Gtk::manage(new Gtk::Frame());
|
||||
ToolParamBlock* const wavBox = Gtk::manage(new ToolParamBlock());
|
||||
wavBox->pack_start(*LocalcurveEditorwavden, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
// wavBox->pack_start(*noiselumf0);
|
||||
// wavBox->pack_start(*noiselumf);
|
||||
// wavBox->pack_start(*noiselumf2);
|
||||
// wavBox->pack_start(*noiselumc);
|
||||
wavBox->pack_start(*noiselumdetail);
|
||||
wavBox->pack_start(*noiselequal);
|
||||
wavBox->pack_start(*noisechrof);
|
||||
wavBox->pack_start(*noisechroc);
|
||||
wavBox->pack_start(*noisechrodetail);
|
||||
wavBox->pack_start(*detailthr);
|
||||
wavBox->pack_start(*adjblur);
|
||||
wavFrame->add(*wavBox);
|
||||
denoisebox->pack_start(*wavFrame);
|
||||
denoisebox->pack_start(*bilateral);
|
||||
denoisebox->pack_start(*sensiden);
|
||||
expdenoise->add(*denoisebox, false);
|
||||
pack_start(*expdenoise);
|
||||
ToolParamBlock* const maskblBox = Gtk::manage(new ToolParamBlock());
|
||||
maskblBox->pack_start(*showmaskblMethod, Gtk::PACK_SHRINK, 4);
|
||||
maskblBox->pack_start(*enablMask, Gtk::PACK_SHRINK, 0);
|
||||
@ -5420,6 +5521,7 @@ LocallabBlur::~LocallabBlur()
|
||||
delete maskblCurveEditorG;
|
||||
delete mask2blCurveEditorG;
|
||||
delete mask2blCurveEditorGwav;
|
||||
delete LocalcurveEditorwavden;
|
||||
}
|
||||
|
||||
void LocallabBlur::resetMaskView()
|
||||
@ -5537,6 +5639,20 @@ void LocallabBlur::read(const rtengine::procparams::ProcParams* pp, const Params
|
||||
}
|
||||
|
||||
activlum->set_active(pp->locallab.spots.at(index).activlum);
|
||||
wavshapeden->setCurve(pp->locallab.spots.at(index).locwavcurveden);
|
||||
noiselumf0->setValue(pp->locallab.spots.at(index).noiselumf0);
|
||||
noiselumf->setValue(pp->locallab.spots.at(index).noiselumf);
|
||||
noiselumf2->setValue(pp->locallab.spots.at(index).noiselumf2);
|
||||
noiselumc->setValue(pp->locallab.spots.at(index).noiselumc);
|
||||
noiselumdetail->setValue(pp->locallab.spots.at(index).noiselumdetail);
|
||||
noiselequal->setValue((double)pp->locallab.spots.at(index).noiselequal);
|
||||
noisechrof->setValue(pp->locallab.spots.at(index).noisechrof);
|
||||
noisechroc->setValue(pp->locallab.spots.at(index).noisechroc);
|
||||
noisechrodetail->setValue(pp->locallab.spots.at(index).noisechrodetail);
|
||||
detailthr->setValue((double)pp->locallab.spots.at(index).detailthr);
|
||||
adjblur->setValue((double)pp->locallab.spots.at(index).adjblur);
|
||||
bilateral->setValue((double)pp->locallab.spots.at(index).bilateral);
|
||||
sensiden->setValue((double)pp->locallab.spots.at(index).sensiden);
|
||||
enablMask->set_active(pp->locallab.spots.at(index).enablMask);
|
||||
CCmaskblshape->setCurve(pp->locallab.spots.at(index).CCmaskblcurve);
|
||||
LLmaskblshape->setCurve(pp->locallab.spots.at(index).LLmaskblcurve);
|
||||
@ -5646,6 +5762,20 @@ void LocallabBlur::write(rtengine::procparams::ProcParams* pp, ParamsEdited* ped
|
||||
}
|
||||
|
||||
pp->locallab.spots.at(index).activlum = activlum->get_active();
|
||||
pp->locallab.spots.at(index).locwavcurveden = wavshapeden->getCurve();
|
||||
pp->locallab.spots.at(index).noiselumf0 = noiselumf0->getValue();
|
||||
pp->locallab.spots.at(index).noiselumf = noiselumf->getValue();
|
||||
pp->locallab.spots.at(index).noiselumf2 = noiselumf2->getValue();
|
||||
pp->locallab.spots.at(index).noiselumc = noiselumc->getValue();
|
||||
pp->locallab.spots.at(index).noiselumdetail = noiselumdetail->getValue();
|
||||
pp->locallab.spots.at(index).noiselequal = noiselequal->getIntValue();
|
||||
pp->locallab.spots.at(index).noisechrof = noisechrof->getValue();
|
||||
pp->locallab.spots.at(index).noisechroc = noisechroc->getValue();
|
||||
pp->locallab.spots.at(index).noisechrodetail = noisechrodetail->getValue();
|
||||
pp->locallab.spots.at(index).detailthr = detailthr->getIntValue();
|
||||
pp->locallab.spots.at(index).adjblur = adjblur->getIntValue();
|
||||
pp->locallab.spots.at(index).bilateral = bilateral->getIntValue();
|
||||
pp->locallab.spots.at(index).sensiden = sensiden->getIntValue();
|
||||
pp->locallab.spots.at(index).enablMask = enablMask->get_active();
|
||||
pp->locallab.spots.at(index).LLmaskblcurve = LLmaskblshape->getCurve();
|
||||
pp->locallab.spots.at(index).CCmaskblcurve = CCmaskblshape->getCurve();
|
||||
@ -5685,6 +5815,19 @@ void LocallabBlur::setDefaults(const rtengine::procparams::ProcParams* defParams
|
||||
strbl->setDefault((double)defSpot.strbl);
|
||||
epsbl->setDefault((double)defSpot.epsbl);
|
||||
sensibn->setDefault((double)defSpot.sensibn);
|
||||
noiselumf0->setDefault(defSpot.noiselumf0);
|
||||
noiselumf->setDefault(defSpot.noiselumf);
|
||||
noiselumf2->setDefault(defSpot.noiselumf2);
|
||||
noiselumc->setDefault(defSpot.noiselumc);
|
||||
noiselumdetail->setDefault(defSpot.noiselumdetail);
|
||||
noiselequal->setDefault((double)defSpot.noiselequal);
|
||||
noisechrof->setDefault(defSpot.noisechrof);
|
||||
noisechroc->setDefault(defSpot.noisechroc);
|
||||
noisechrodetail->setDefault(defSpot.noisechrodetail);
|
||||
detailthr->setDefault((double)defSpot.detailthr);
|
||||
adjblur->setDefault((double)defSpot.adjblur);
|
||||
bilateral->setDefault((double)defSpot.bilateral);
|
||||
sensiden->setDefault((double)defSpot.sensiden);
|
||||
strumaskbl->setDefault(defSpot.strumaskbl);
|
||||
blendmaskbl->setDefault((double)defSpot.blendmaskbl);
|
||||
radmaskbl->setDefault(defSpot.radmaskbl);
|
||||
@ -5772,6 +5915,97 @@ void LocallabBlur::adjusterChanged(Adjuster* a, double newval)
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumf0) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumf0,
|
||||
noiselumf0->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumf) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumf,
|
||||
noiselumf->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumf2) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumf2,
|
||||
noiselumf2->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumc,
|
||||
noiselumc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumdetail) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumdetail,
|
||||
noiselumdetail->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselequal) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselequal,
|
||||
noiselequal->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noisechrof) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoisechrof,
|
||||
noisechrof->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noisechroc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoisechroc,
|
||||
noisechroc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noisechrodetail) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoisechrodetail,
|
||||
noisechrodetail->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == detailthr) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabdetailthr,
|
||||
detailthr->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == adjblur) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabadjblur,
|
||||
adjblur->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == bilateral) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabbilateral,
|
||||
bilateral->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == sensiden) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabsensiden,
|
||||
sensiden->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == strumaskbl) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabstrumaskbl,
|
||||
@ -5843,6 +6077,13 @@ void LocallabBlur::adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int ne
|
||||
void LocallabBlur::curveChanged(CurveEditor* ce)
|
||||
{
|
||||
if (isLocActivated && exp->getEnabled()) {
|
||||
if (ce == wavshapeden) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabwavCurveden,
|
||||
M("HISTORY_CUSTOMCURVE") + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (ce == CCmaskblshape) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabCCmaskblshape,
|
||||
|
@ -582,6 +582,21 @@ private:
|
||||
MyComboBoxText* const blurMethod;
|
||||
MyComboBoxText* const chroMethod;
|
||||
Gtk::CheckButton* const activlum;
|
||||
CurveEditorGroup* const LocalcurveEditorwavden;
|
||||
FlatCurveEditor* const wavshapeden;
|
||||
Adjuster* const noiselumf0;
|
||||
Adjuster* const noiselumf;
|
||||
Adjuster* const noiselumf2;
|
||||
Adjuster* const noiselumc;
|
||||
Adjuster* const noiselumdetail;
|
||||
Adjuster* const noiselequal;
|
||||
Adjuster* const noisechrof;
|
||||
Adjuster* const noisechroc;
|
||||
Adjuster* const noisechrodetail;
|
||||
Adjuster* const detailthr;
|
||||
Adjuster* const adjblur;
|
||||
Adjuster* const bilateral;
|
||||
Adjuster* const sensiden;
|
||||
MyExpander* const expmaskbl;
|
||||
MyComboBoxText* const showmaskblMethod;
|
||||
Gtk::CheckButton* const enablMask;
|
||||
@ -1048,42 +1063,6 @@ private:
|
||||
void lumacontrastPlusPressed();
|
||||
};
|
||||
|
||||
/* ==== LocallabDenoise ==== */
|
||||
class LocallabDenoise:
|
||||
public Gtk::VBox,
|
||||
public LocallabTool
|
||||
{
|
||||
private:
|
||||
CurveEditorGroup* const LocalcurveEditorwavden;
|
||||
FlatCurveEditor* const wavshapeden;
|
||||
Adjuster* const noiselumf0;
|
||||
Adjuster* const noiselumf;
|
||||
Adjuster* const noiselumf2;
|
||||
Adjuster* const noiselumc;
|
||||
Adjuster* const noiselumdetail;
|
||||
Adjuster* const noiselequal;
|
||||
Adjuster* const noisechrof;
|
||||
Adjuster* const noisechroc;
|
||||
Adjuster* const noisechrodetail;
|
||||
Adjuster* const detailthr;
|
||||
Adjuster* const adjblur;
|
||||
Adjuster* const bilateral;
|
||||
Adjuster* const sensiden;
|
||||
|
||||
public:
|
||||
LocallabDenoise();
|
||||
~LocallabDenoise();
|
||||
|
||||
void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
|
||||
void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
|
||||
void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
|
||||
void adjusterChanged(Adjuster* a, double newval);
|
||||
void curveChanged(CurveEditor* ce);
|
||||
|
||||
private:
|
||||
void enabledChanged();
|
||||
};
|
||||
|
||||
/* ==== LocallabLog ==== */
|
||||
class LocallabLog:
|
||||
public Gtk::VBox,
|
||||
|
@ -25,9 +25,6 @@
|
||||
#include "locallab.h"
|
||||
#include "rtimage.h"
|
||||
|
||||
#define MINCHRO 0.
|
||||
#define MAXCHRO 150.
|
||||
#define MAXCHROCC 100.
|
||||
#define MINNEIGH 0.1
|
||||
#define MAXNEIGH 1500
|
||||
#define CENTERNEIGH 200
|
||||
@ -4135,319 +4132,6 @@ void LocallabCBDL::lumacontrastPlusPressed()
|
||||
adjusterChanged(multiplier[0], multiplier[0]->getValue()); // Value isn't used
|
||||
}
|
||||
|
||||
/* ==== LocallabDenoise ==== */
|
||||
LocallabDenoise::LocallabDenoise():
|
||||
LocallabTool(this, M("TP_LOCALLAB_DEN_TOOLNAME"), M("TP_LOCALLAB_DENOIS"), true),
|
||||
|
||||
// Denoise specific widgets
|
||||
LocalcurveEditorwavden(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVDEN"))),
|
||||
wavshapeden(static_cast<FlatCurveEditor*>(LocalcurveEditorwavden->addCurve(CT_Flat, "", nullptr, false, false))),
|
||||
noiselumf0(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINEZERO"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noiselumf(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINE"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noiselumf2(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINETWO"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noiselumc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMCOARSE"), MINCHRO, MAXCHROCC, 0.01, 0.))),
|
||||
noiselumdetail(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMDETAIL"), 0., 100., 0.01, 0.))),
|
||||
noiselequal(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELEQUAL"), -2, 10, 1, 7, Gtk::manage(new RTImage("circle-white-small.png")), Gtk::manage(new RTImage("circle-black-small.png"))))),
|
||||
noisechrof(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHROFINE"), MINCHRO, MAXCHRO, 0.01, 0.))),
|
||||
noisechroc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHROCOARSE"), MINCHRO, MAXCHROCC, 0.01, 0.))),
|
||||
noisechrodetail(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHRODETAIL"), 0., 100., 0.01, 0.))),
|
||||
detailthr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DETAILTHR"), 0, 100, 1, 0))),
|
||||
adjblur(Gtk::manage(new Adjuster(M("TP_LOCALLAB_ADJ"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-red-small.png"))))),
|
||||
bilateral(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BILATERAL"), 0, 100, 1, 0))),
|
||||
sensiden(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIDEN"), 0, 100, 1, 20)))
|
||||
{
|
||||
const bool showtooltip = options.showtooltip;
|
||||
|
||||
const LocallabParams::LocallabSpot defSpot;
|
||||
|
||||
// Parameter Denoise specific widgets
|
||||
if (showtooltip) {
|
||||
exp->set_tooltip_markup(M("TP_LOCALLAB_DENOI_TOOLTIP"));
|
||||
}
|
||||
|
||||
LocalcurveEditorwavden->setCurveListener(this);
|
||||
|
||||
wavshapeden->setIdentityValue(0.);
|
||||
wavshapeden->setResetCurve(FlatCurveType(defSpot.locwavcurveden.at(0)), defSpot.locwavcurveden);
|
||||
|
||||
if (showtooltip) {
|
||||
wavshapeden->setTooltip(M("TP_LOCALLAB_WASDEN_TOOLTIP"));
|
||||
}
|
||||
|
||||
LocalcurveEditorwavden->curveListComplete();
|
||||
|
||||
noiselumf0->setAdjusterListener(this);
|
||||
|
||||
noiselumf->setAdjusterListener(this);
|
||||
|
||||
noiselumf2->setAdjusterListener(this);
|
||||
|
||||
if (showtooltip) {
|
||||
noiselumc->set_tooltip_text(M("TP_LOCALLAB_NOISECHROC_TOOLTIP"));
|
||||
}
|
||||
|
||||
noiselumc->setAdjusterListener(this);
|
||||
|
||||
noiselumdetail->setAdjusterListener(this);
|
||||
|
||||
noiselequal->setAdjusterListener(this);
|
||||
|
||||
noisechrof->setAdjusterListener(this);
|
||||
|
||||
if (showtooltip) {
|
||||
noisechroc->set_tooltip_text(M("TP_LOCALLAB_NOISECHROC_TOOLTIP"));
|
||||
}
|
||||
|
||||
noisechroc->setAdjusterListener(this);
|
||||
|
||||
noisechrodetail->setAdjusterListener(this);
|
||||
|
||||
detailthr->setAdjusterListener(this);
|
||||
|
||||
adjblur->setAdjusterListener(this);
|
||||
|
||||
bilateral->setAdjusterListener(this);
|
||||
|
||||
sensiden->setAdjusterListener(this);
|
||||
|
||||
// Add Denoise specific widgets to GUI
|
||||
Gtk::Frame* const wavFrame = Gtk::manage(new Gtk::Frame());
|
||||
ToolParamBlock* const wavBox = Gtk::manage(new ToolParamBlock());
|
||||
wavBox->pack_start(*LocalcurveEditorwavden, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
// wavBox->pack_start(*noiselumf0);
|
||||
// wavBox->pack_start(*noiselumf);
|
||||
// wavBox->pack_start(*noiselumf2);
|
||||
// wavBox->pack_start(*noiselumc);
|
||||
wavBox->pack_start(*noiselumdetail);
|
||||
wavBox->pack_start(*noiselequal);
|
||||
wavBox->pack_start(*noisechrof);
|
||||
wavBox->pack_start(*noisechroc);
|
||||
wavBox->pack_start(*noisechrodetail);
|
||||
wavBox->pack_start(*detailthr);
|
||||
wavBox->pack_start(*adjblur);
|
||||
wavFrame->add(*wavBox);
|
||||
pack_start(*wavFrame);
|
||||
pack_start(*bilateral);
|
||||
pack_start(*sensiden);
|
||||
}
|
||||
|
||||
LocallabDenoise::~LocallabDenoise()
|
||||
{
|
||||
delete LocalcurveEditorwavden;
|
||||
}
|
||||
|
||||
void LocallabDenoise::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited)
|
||||
{
|
||||
// Disable all listeners
|
||||
disableListener();
|
||||
|
||||
// Update GUI to selected spot value
|
||||
const int index = pp->locallab.selspot;
|
||||
|
||||
if (index < (int)pp->locallab.spots.size()) {
|
||||
spotName = pp->locallab.spots.at(index).name; // Update spot name according to selected spot
|
||||
|
||||
exp->set_visible(pp->locallab.spots.at(index).visidenoi);
|
||||
exp->setEnabled(pp->locallab.spots.at(index).expdenoi);
|
||||
|
||||
wavshapeden->setCurve(pp->locallab.spots.at(index).locwavcurveden);
|
||||
noiselumf0->setValue(pp->locallab.spots.at(index).noiselumf0);
|
||||
noiselumf->setValue(pp->locallab.spots.at(index).noiselumf);
|
||||
noiselumf2->setValue(pp->locallab.spots.at(index).noiselumf2);
|
||||
noiselumc->setValue(pp->locallab.spots.at(index).noiselumc);
|
||||
noiselumdetail->setValue(pp->locallab.spots.at(index).noiselumdetail);
|
||||
noiselequal->setValue((double)pp->locallab.spots.at(index).noiselequal);
|
||||
noisechrof->setValue(pp->locallab.spots.at(index).noisechrof);
|
||||
noisechroc->setValue(pp->locallab.spots.at(index).noisechroc);
|
||||
noisechrodetail->setValue(pp->locallab.spots.at(index).noisechrodetail);
|
||||
detailthr->setValue((double)pp->locallab.spots.at(index).detailthr);
|
||||
adjblur->setValue((double)pp->locallab.spots.at(index).adjblur);
|
||||
bilateral->setValue((double)pp->locallab.spots.at(index).bilateral);
|
||||
sensiden->setValue((double)pp->locallab.spots.at(index).sensiden);
|
||||
}
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
|
||||
// Note: No need to manage pedited as batch mode is deactivated for Locallab
|
||||
}
|
||||
|
||||
void LocallabDenoise::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited)
|
||||
{
|
||||
const int index = pp->locallab.selspot;
|
||||
|
||||
if (index < (int)pp->locallab.spots.size()) {
|
||||
pp->locallab.spots.at(index).expdenoi = exp->getEnabled();
|
||||
pp->locallab.spots.at(index).visidenoi = exp->get_visible();
|
||||
|
||||
pp->locallab.spots.at(index).locwavcurveden = wavshapeden->getCurve();
|
||||
pp->locallab.spots.at(index).noiselumf0 = noiselumf0->getValue();
|
||||
pp->locallab.spots.at(index).noiselumf = noiselumf->getValue();
|
||||
pp->locallab.spots.at(index).noiselumf2 = noiselumf2->getValue();
|
||||
pp->locallab.spots.at(index).noiselumc = noiselumc->getValue();
|
||||
pp->locallab.spots.at(index).noiselumdetail = noiselumdetail->getValue();
|
||||
pp->locallab.spots.at(index).noiselequal = noiselequal->getIntValue();
|
||||
pp->locallab.spots.at(index).noisechrof = noisechrof->getValue();
|
||||
pp->locallab.spots.at(index).noisechroc = noisechroc->getValue();
|
||||
pp->locallab.spots.at(index).noisechrodetail = noisechrodetail->getValue();
|
||||
pp->locallab.spots.at(index).detailthr = detailthr->getIntValue();
|
||||
pp->locallab.spots.at(index).adjblur = adjblur->getIntValue();
|
||||
pp->locallab.spots.at(index).bilateral = bilateral->getIntValue();
|
||||
pp->locallab.spots.at(index).sensiden = sensiden->getIntValue();
|
||||
}
|
||||
|
||||
// Note: No need to manage pedited as batch mode is deactivated for Locallab
|
||||
}
|
||||
|
||||
void LocallabDenoise::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited)
|
||||
{
|
||||
const int index = defParams->locallab.selspot;
|
||||
|
||||
if (index < (int)defParams->locallab.spots.size()) {
|
||||
const LocallabParams::LocallabSpot defSpot = defParams->locallab.spots.at(index);
|
||||
|
||||
// Set default values for adjuster widgets
|
||||
noiselumf0->setDefault(defSpot.noiselumf0);
|
||||
noiselumf->setDefault(defSpot.noiselumf);
|
||||
noiselumf2->setDefault(defSpot.noiselumf2);
|
||||
noiselumc->setDefault(defSpot.noiselumc);
|
||||
noiselumdetail->setDefault(defSpot.noiselumdetail);
|
||||
noiselequal->setDefault((double)defSpot.noiselequal);
|
||||
noisechrof->setDefault(defSpot.noisechrof);
|
||||
noisechroc->setDefault(defSpot.noisechroc);
|
||||
noisechrodetail->setDefault(defSpot.noisechrodetail);
|
||||
detailthr->setDefault((double)defSpot.detailthr);
|
||||
adjblur->setDefault((double)defSpot.adjblur);
|
||||
bilateral->setDefault((double)defSpot.bilateral);
|
||||
sensiden->setDefault((double)defSpot.sensiden);
|
||||
}
|
||||
|
||||
// Note: No need to manage pedited as batch mode is deactivated for Locallab
|
||||
}
|
||||
|
||||
void LocallabDenoise::adjusterChanged(Adjuster* a, double newval)
|
||||
{
|
||||
if (isLocActivated && exp->getEnabled()) {
|
||||
if (a == noiselumf0) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumf0,
|
||||
noiselumf0->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumf) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumf,
|
||||
noiselumf->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumf2) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumf2,
|
||||
noiselumf2->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumc,
|
||||
noiselumc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselumdetail) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselumdetail,
|
||||
noiselumdetail->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noiselequal) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoiselequal,
|
||||
noiselequal->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noisechrof) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoisechrof,
|
||||
noisechrof->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noisechroc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoisechroc,
|
||||
noisechroc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == noisechrodetail) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabnoisechrodetail,
|
||||
noisechrodetail->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == detailthr) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabdetailthr,
|
||||
detailthr->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == adjblur) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabadjblur,
|
||||
adjblur->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == bilateral) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabbilateral,
|
||||
bilateral->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == sensiden) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabsensiden,
|
||||
sensiden->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LocallabDenoise::curveChanged(CurveEditor* ce)
|
||||
{
|
||||
if (isLocActivated && exp->getEnabled()) {
|
||||
if (ce == wavshapeden) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabwavCurveden,
|
||||
M("HISTORY_CUSTOMCURVE") + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LocallabDenoise::enabledChanged()
|
||||
{
|
||||
if (isLocActivated) {
|
||||
if (listener) {
|
||||
if (exp->getEnabled()) {
|
||||
listener->panelChanged(EvLocenadenoi,
|
||||
M("GENERAL_ENABLED") + " (" + escapeHtmlChars(spotName) + ")");
|
||||
} else {
|
||||
listener->panelChanged(EvLocenadenoi,
|
||||
M("GENERAL_DISABLED") + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ==== LocallabLog ==== */
|
||||
LocallabLog::LocallabLog():
|
||||
LocallabTool(this, M("TP_LOCALLAB_LOG_TOOLNAME"), M("TP_LOCALLAB_LOG"), false),
|
||||
|
@ -1178,6 +1178,20 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).blurMethod = locallab.spots.at(j).blurMethod && pSpot.blurMethod == otherSpot.blurMethod;
|
||||
locallab.spots.at(j).medMethod = locallab.spots.at(j).medMethod && pSpot.medMethod == otherSpot.medMethod;
|
||||
locallab.spots.at(j).activlum = locallab.spots.at(j).activlum && pSpot.activlum == otherSpot.activlum;
|
||||
locallab.spots.at(j).noiselumf = locallab.spots.at(j).noiselumf && pSpot.noiselumf == otherSpot.noiselumf;
|
||||
locallab.spots.at(j).noiselumf0 = locallab.spots.at(j).noiselumf0 && pSpot.noiselumf0 == otherSpot.noiselumf0;
|
||||
locallab.spots.at(j).noiselumf2 = locallab.spots.at(j).noiselumf2 && pSpot.noiselumf2 == otherSpot.noiselumf2;
|
||||
locallab.spots.at(j).noiselumc = locallab.spots.at(j).noiselumc && pSpot.noiselumc == otherSpot.noiselumc;
|
||||
locallab.spots.at(j).noiselumdetail = locallab.spots.at(j).noiselumdetail && pSpot.noiselumdetail == otherSpot.noiselumdetail;
|
||||
locallab.spots.at(j).noiselequal = locallab.spots.at(j).noiselequal && pSpot.noiselequal == otherSpot.noiselequal;
|
||||
locallab.spots.at(j).noisechrof = locallab.spots.at(j).noisechrof && pSpot.noisechrof == otherSpot.noisechrof;
|
||||
locallab.spots.at(j).noisechroc = locallab.spots.at(j).noisechroc && pSpot.noisechroc == otherSpot.noisechroc;
|
||||
locallab.spots.at(j).noisechrodetail = locallab.spots.at(j).noisechrodetail && pSpot.noisechrodetail == otherSpot.noisechrodetail;
|
||||
locallab.spots.at(j).adjblur = locallab.spots.at(j).adjblur && pSpot.adjblur == otherSpot.adjblur;
|
||||
locallab.spots.at(j).bilateral = locallab.spots.at(j).bilateral && pSpot.bilateral == otherSpot.bilateral;
|
||||
locallab.spots.at(j).sensiden = locallab.spots.at(j).sensiden && pSpot.sensiden == otherSpot.sensiden;
|
||||
locallab.spots.at(j).detailthr = locallab.spots.at(j).detailthr && pSpot.detailthr == otherSpot.detailthr;
|
||||
locallab.spots.at(j).locwavcurveden = locallab.spots.at(j).locwavcurveden && pSpot.locwavcurveden == otherSpot.locwavcurveden;
|
||||
locallab.spots.at(j).CCmaskblcurve = locallab.spots.at(j).CCmaskblcurve && pSpot.CCmaskblcurve == otherSpot.CCmaskblcurve;
|
||||
locallab.spots.at(j).LLmaskblcurve = locallab.spots.at(j).LLmaskblcurve && pSpot.LLmaskblcurve == otherSpot.LLmaskblcurve;
|
||||
locallab.spots.at(j).HHmaskblcurve = locallab.spots.at(j).HHmaskblcurve && pSpot.HHmaskblcurve == otherSpot.HHmaskblcurve;
|
||||
@ -1357,23 +1371,6 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).slomaskcb = locallab.spots.at(j).slomaskcb && pSpot.slomaskcb == otherSpot.slomaskcb;
|
||||
locallab.spots.at(j).lapmaskcb = locallab.spots.at(j).lapmaskcb && pSpot.lapmaskcb == otherSpot.lapmaskcb;
|
||||
locallab.spots.at(j).Lmaskcbcurve = locallab.spots.at(j).Lmaskcbcurve && pSpot.Lmaskcbcurve == otherSpot.Lmaskcbcurve;
|
||||
// Denoise
|
||||
locallab.spots.at(j).visidenoi = locallab.spots.at(j).visidenoi && pSpot.visidenoi == otherSpot.visidenoi;
|
||||
locallab.spots.at(j).expdenoi = locallab.spots.at(j).expdenoi && pSpot.expdenoi == otherSpot.expdenoi;
|
||||
locallab.spots.at(j).noiselumf = locallab.spots.at(j).noiselumf && pSpot.noiselumf == otherSpot.noiselumf;
|
||||
locallab.spots.at(j).noiselumf0 = locallab.spots.at(j).noiselumf0 && pSpot.noiselumf0 == otherSpot.noiselumf0;
|
||||
locallab.spots.at(j).noiselumf2 = locallab.spots.at(j).noiselumf2 && pSpot.noiselumf2 == otherSpot.noiselumf2;
|
||||
locallab.spots.at(j).noiselumc = locallab.spots.at(j).noiselumc && pSpot.noiselumc == otherSpot.noiselumc;
|
||||
locallab.spots.at(j).noiselumdetail = locallab.spots.at(j).noiselumdetail && pSpot.noiselumdetail == otherSpot.noiselumdetail;
|
||||
locallab.spots.at(j).noiselequal = locallab.spots.at(j).noiselequal && pSpot.noiselequal == otherSpot.noiselequal;
|
||||
locallab.spots.at(j).noisechrof = locallab.spots.at(j).noisechrof && pSpot.noisechrof == otherSpot.noisechrof;
|
||||
locallab.spots.at(j).noisechroc = locallab.spots.at(j).noisechroc && pSpot.noisechroc == otherSpot.noisechroc;
|
||||
locallab.spots.at(j).noisechrodetail = locallab.spots.at(j).noisechrodetail && pSpot.noisechrodetail == otherSpot.noisechrodetail;
|
||||
locallab.spots.at(j).adjblur = locallab.spots.at(j).adjblur && pSpot.adjblur == otherSpot.adjblur;
|
||||
locallab.spots.at(j).bilateral = locallab.spots.at(j).bilateral && pSpot.bilateral == otherSpot.bilateral;
|
||||
locallab.spots.at(j).sensiden = locallab.spots.at(j).sensiden && pSpot.sensiden == otherSpot.sensiden;
|
||||
locallab.spots.at(j).detailthr = locallab.spots.at(j).detailthr && pSpot.detailthr == otherSpot.detailthr;
|
||||
locallab.spots.at(j).locwavcurveden = locallab.spots.at(j).locwavcurveden && pSpot.locwavcurveden == otherSpot.locwavcurveden;
|
||||
// Log encoding
|
||||
locallab.spots.at(j).visilog = locallab.spots.at(j).visilog && pSpot.visilog == otherSpot.visilog;
|
||||
locallab.spots.at(j).explog = locallab.spots.at(j).explog && pSpot.explog == otherSpot.explog;
|
||||
@ -3705,6 +3702,62 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).activlum = mods.locallab.spots.at(i).activlum;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumf) {
|
||||
toEdit.locallab.spots.at(i).noiselumf = mods.locallab.spots.at(i).noiselumf;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumf0) {
|
||||
toEdit.locallab.spots.at(i).noiselumf0 = mods.locallab.spots.at(i).noiselumf0;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumf2) {
|
||||
toEdit.locallab.spots.at(i).noiselumf2 = mods.locallab.spots.at(i).noiselumf2;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumc) {
|
||||
toEdit.locallab.spots.at(i).noiselumc = mods.locallab.spots.at(i).noiselumc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumdetail) {
|
||||
toEdit.locallab.spots.at(i).noiselumdetail = mods.locallab.spots.at(i).noiselumdetail;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselequal) {
|
||||
toEdit.locallab.spots.at(i).noiselequal = mods.locallab.spots.at(i).noiselequal;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noisechrof) {
|
||||
toEdit.locallab.spots.at(i).noisechrof = mods.locallab.spots.at(i).noisechrof;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noisechroc) {
|
||||
toEdit.locallab.spots.at(i).noisechroc = mods.locallab.spots.at(i).noisechroc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noisechrodetail) {
|
||||
toEdit.locallab.spots.at(i).noisechrodetail = mods.locallab.spots.at(i).noisechrodetail;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).adjblur) {
|
||||
toEdit.locallab.spots.at(i).adjblur = mods.locallab.spots.at(i).adjblur;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).bilateral) {
|
||||
toEdit.locallab.spots.at(i).bilateral = mods.locallab.spots.at(i).bilateral;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sensiden) {
|
||||
toEdit.locallab.spots.at(i).sensiden = mods.locallab.spots.at(i).sensiden;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).detailthr) {
|
||||
toEdit.locallab.spots.at(i).detailthr = mods.locallab.spots.at(i).detailthr;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).locwavcurveden) {
|
||||
toEdit.locallab.spots.at(i).locwavcurveden = mods.locallab.spots.at(i).locwavcurveden;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).CCmaskblcurve) {
|
||||
toEdit.locallab.spots.at(i).CCmaskblcurve = mods.locallab.spots.at(i).CCmaskblcurve;
|
||||
}
|
||||
@ -4392,71 +4445,6 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).Lmaskcbcurve = mods.locallab.spots.at(i).Lmaskcbcurve;
|
||||
}
|
||||
|
||||
// Denoise
|
||||
if (locallab.spots.at(i).visidenoi) {
|
||||
toEdit.locallab.spots.at(i).visidenoi = mods.locallab.spots.at(i).visidenoi;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).expdenoi) {
|
||||
toEdit.locallab.spots.at(i).expdenoi = mods.locallab.spots.at(i).expdenoi;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumf) {
|
||||
toEdit.locallab.spots.at(i).noiselumf = mods.locallab.spots.at(i).noiselumf;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumf0) {
|
||||
toEdit.locallab.spots.at(i).noiselumf0 = mods.locallab.spots.at(i).noiselumf0;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumf2) {
|
||||
toEdit.locallab.spots.at(i).noiselumf2 = mods.locallab.spots.at(i).noiselumf2;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumc) {
|
||||
toEdit.locallab.spots.at(i).noiselumc = mods.locallab.spots.at(i).noiselumc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselumdetail) {
|
||||
toEdit.locallab.spots.at(i).noiselumdetail = mods.locallab.spots.at(i).noiselumdetail;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noiselequal) {
|
||||
toEdit.locallab.spots.at(i).noiselequal = mods.locallab.spots.at(i).noiselequal;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noisechrof) {
|
||||
toEdit.locallab.spots.at(i).noisechrof = mods.locallab.spots.at(i).noisechrof;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noisechroc) {
|
||||
toEdit.locallab.spots.at(i).noisechroc = mods.locallab.spots.at(i).noisechroc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).noisechrodetail) {
|
||||
toEdit.locallab.spots.at(i).noisechrodetail = mods.locallab.spots.at(i).noisechrodetail;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).adjblur) {
|
||||
toEdit.locallab.spots.at(i).adjblur = mods.locallab.spots.at(i).adjblur;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).bilateral) {
|
||||
toEdit.locallab.spots.at(i).bilateral = mods.locallab.spots.at(i).bilateral;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sensiden) {
|
||||
toEdit.locallab.spots.at(i).sensiden = mods.locallab.spots.at(i).sensiden;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).detailthr) {
|
||||
toEdit.locallab.spots.at(i).detailthr = mods.locallab.spots.at(i).detailthr;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).locwavcurveden) {
|
||||
toEdit.locallab.spots.at(i).locwavcurveden = mods.locallab.spots.at(i).locwavcurveden;
|
||||
}
|
||||
|
||||
// Log encoding
|
||||
if (locallab.spots.at(i).visilog) {
|
||||
toEdit.locallab.spots.at(i).visilog = mods.locallab.spots.at(i).visilog;
|
||||
@ -5703,6 +5691,20 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
blurMethod(v),
|
||||
medMethod(v),
|
||||
activlum(v),
|
||||
noiselumf(v),
|
||||
noiselumf0(v),
|
||||
noiselumf2(v),
|
||||
noiselumc(v),
|
||||
noiselumdetail(v),
|
||||
noiselequal(v),
|
||||
noisechrof(v),
|
||||
noisechroc(v),
|
||||
noisechrodetail(v),
|
||||
adjblur(v),
|
||||
bilateral(v),
|
||||
sensiden(v),
|
||||
detailthr(v),
|
||||
locwavcurveden(v),
|
||||
CCmaskblcurve(v),
|
||||
LLmaskblcurve(v),
|
||||
HHmaskblcurve(v),
|
||||
@ -5878,23 +5880,6 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
slomaskcb(v),
|
||||
lapmaskcb(v),
|
||||
Lmaskcbcurve(v),
|
||||
// Denoise
|
||||
visidenoi(v),
|
||||
expdenoi(v),
|
||||
noiselumf(v),
|
||||
noiselumf0(v),
|
||||
noiselumf2(v),
|
||||
noiselumc(v),
|
||||
noiselumdetail(v),
|
||||
noiselequal(v),
|
||||
noisechrof(v),
|
||||
noisechroc(v),
|
||||
noisechrodetail(v),
|
||||
adjblur(v),
|
||||
bilateral(v),
|
||||
sensiden(v),
|
||||
detailthr(v),
|
||||
locwavcurveden(v),
|
||||
// Log encoding
|
||||
visilog(v),
|
||||
explog(v),
|
||||
@ -6141,6 +6126,20 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
blurMethod = v;
|
||||
medMethod = v;
|
||||
activlum = v;
|
||||
noiselumf = v;
|
||||
noiselumf0 = v;
|
||||
noiselumf2 = v;
|
||||
noiselumc = v;
|
||||
noiselumdetail = v;
|
||||
noiselequal = v;
|
||||
noisechrof = v;
|
||||
noisechroc = v;
|
||||
noisechrodetail = v;
|
||||
adjblur = v;
|
||||
bilateral = v;
|
||||
sensiden = v;
|
||||
detailthr = v;
|
||||
locwavcurveden = v;
|
||||
CCmaskblcurve = v;
|
||||
LLmaskblcurve = v;
|
||||
HHmaskblcurve = v;
|
||||
@ -6320,23 +6319,6 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
slomaskcb = v;
|
||||
lapmaskcb = v;
|
||||
Lmaskcbcurve = v;
|
||||
// Denoise
|
||||
visidenoi = v;
|
||||
expdenoi = v;
|
||||
noiselumf = v;
|
||||
noiselumf0 = v;
|
||||
noiselumf2 = v;
|
||||
noiselumc = v;
|
||||
noiselumdetail = v;
|
||||
noiselequal = v;
|
||||
noisechrof = v;
|
||||
noisechroc = v;
|
||||
noisechrodetail = v;
|
||||
adjblur = v;
|
||||
bilateral = v;
|
||||
sensiden = v;
|
||||
detailthr = v;
|
||||
locwavcurveden = v;
|
||||
// Log encoding
|
||||
visilog = v;
|
||||
explog = v;
|
||||
|
@ -607,6 +607,20 @@ public:
|
||||
bool blurMethod;
|
||||
bool medMethod;
|
||||
bool activlum;
|
||||
bool noiselumf;
|
||||
bool noiselumf0;
|
||||
bool noiselumf2;
|
||||
bool noiselumc;
|
||||
bool noiselumdetail;
|
||||
bool noiselequal;
|
||||
bool noisechrof;
|
||||
bool noisechroc;
|
||||
bool noisechrodetail;
|
||||
bool adjblur;
|
||||
bool bilateral;
|
||||
bool sensiden;
|
||||
bool detailthr;
|
||||
bool locwavcurveden;
|
||||
bool CCmaskblcurve;
|
||||
bool LLmaskblcurve;
|
||||
bool HHmaskblcurve;
|
||||
@ -782,23 +796,6 @@ public:
|
||||
bool slomaskcb;
|
||||
bool lapmaskcb;
|
||||
bool Lmaskcbcurve;
|
||||
// Denoise
|
||||
bool visidenoi;
|
||||
bool expdenoi;
|
||||
bool noiselumf;
|
||||
bool noiselumf0;
|
||||
bool noiselumf2;
|
||||
bool noiselumc;
|
||||
bool noiselumdetail;
|
||||
bool noiselequal;
|
||||
bool noisechrof;
|
||||
bool noisechroc;
|
||||
bool noisechrodetail;
|
||||
bool adjblur;
|
||||
bool bilateral;
|
||||
bool sensiden;
|
||||
bool detailthr;
|
||||
bool locwavcurveden;
|
||||
// Log encoding
|
||||
bool visilog;
|
||||
bool explog;
|
||||
|
Loading…
x
Reference in New Issue
Block a user