Add chroma to blur levels
This commit is contained in:
parent
8d38dda3ce
commit
e1a938e3a4
@ -1115,6 +1115,7 @@ HISTORY_MSG_876;Local - LC mask radius
|
||||
HISTORY_MSG_877;Local - LC mask chroma
|
||||
HISTORY_MSG_878;Local - LC mask curve contrast
|
||||
HISTORY_MSG_879;Local - LC Chroma levels
|
||||
HISTORY_MSG_880;Local - LC Chroma blur levels
|
||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||
@ -2210,7 +2211,7 @@ TP_LOCALLAB_BLUR;Gaussian Blur - Noise - Grain
|
||||
TP_LOCALLAB_BLURCBDL;Blur levels 0-1-2-3-4
|
||||
TP_LOCALLAB_BLURCOL;Radius Mask Blur
|
||||
TP_LOCALLAB_BLURDE;Blur Shape detection
|
||||
TP_LOCALLAB_BLURLC;Luminance Residual Image Only
|
||||
TP_LOCALLAB_BLURLC;Luminance Only
|
||||
TP_LOCALLAB_BLURLEVELFRA;Blur Levels
|
||||
TP_LOCALLAB_BLURRESIDFRA;Blur Residual
|
||||
TP_LOCALLAB_BUTTON_ADD;Add
|
||||
@ -2226,6 +2227,7 @@ TP_LOCALLAB_CHROMA;Chrominance
|
||||
TP_LOCALLAB_CHROMACBDL;Chroma
|
||||
TP_LOCALLAB_CHROMACB_TOOLTIP;Acts as an amplifier-reducer action compare to sliders of luminance.\nUnder 100 reduce, above 100 amplifie
|
||||
TP_LOCALLAB_CHROMALEV;Chroma levels
|
||||
TP_LOCALLAB_CHROMABLU;Chroma levels
|
||||
TP_LOCALLAB_CHROMASKCOL;Chroma mask
|
||||
TP_LOCALLAB_CHROMASK_TOOLTIP;You can use this slider to desaturated background (inverse mask - curve near 0).\nAlso to attenuate or enhance the action of a mask on the chroma
|
||||
TP_LOCALLAB_CHRRT;Chroma
|
||||
|
@ -321,7 +321,7 @@ public:
|
||||
const LocwavCurve & loclevwavCurve, bool & loclevwavutili, bool wavcurvelev,
|
||||
const LocwavCurve & locconwavCurve, bool & locconwavutili, bool wavcurvecon,
|
||||
const LocwavCurve & loccompwavCurve, bool & loccompwavutili, bool wavcurvecomp,
|
||||
float sigm, int & maxlvl, float fatdet, float fatanch, float chromalev);
|
||||
float sigm, int & maxlvl, float fatdet, float fatanch, float chromalev, float chromablu, bool blurlc);
|
||||
|
||||
void transit_shapedetect2(int call, int senstype, const LabImage * bufexporig, const LabImage * bufexpfin, LabImage * originalmask, const float hueref, const float chromaref, const float lumaref, float sobelref, float meansobel, float ** blend2, struct local_params & lp, LabImage * original, LabImage * transformed, int cx, int cy, int sk);
|
||||
|
||||
|
@ -4078,7 +4078,7 @@ void ImProcFunctions::maskcalccol(int call, bool invmask, bool pde, int bfw, int
|
||||
bool wavcurvecon = false;
|
||||
bool loccompwavutili = false;
|
||||
bool wavcurvecomp = false;
|
||||
wavcontrast4(bufmaskblurcol->L, nullptr, nullptr, contrast, 0.f, 0.f, 0.f, bfw, bfh, level_bl, level_hl, level_br, level_hr, sk, numThreads, loclmasCurvecolwav, lmasutilicolwav, dummy, loclevwavutili, wavcurvelev, dummy, locconwavutili, wavcurvecon, dummy, loccompwavutili, wavcurvecomp, 1.f, maxlvl, 0.f, 0.f, 1.f);
|
||||
wavcontrast4(bufmaskblurcol->L, nullptr, nullptr, contrast, 0.f, 0.f, 0.f, bfw, bfh, level_bl, level_hl, level_br, level_hr, sk, numThreads, loclmasCurvecolwav, lmasutilicolwav, dummy, loclevwavutili, wavcurvelev, dummy, locconwavutili, wavcurvecon, dummy, loccompwavutili, wavcurvecomp, 1.f, maxlvl, 0.f, 0.f, 1.f, 1.f, false);
|
||||
|
||||
}
|
||||
|
||||
@ -6938,7 +6938,7 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
const LocwavCurve & locwavCurve, bool & locwavutili, const LocwavCurve & loclevwavCurve, bool & loclevwavutili, bool wavcurvelev,
|
||||
const LocwavCurve & locconwavCurve, bool & locconwavutili, bool wavcurvecon,
|
||||
const LocwavCurve & loccompwavCurve, bool & loccompwavutili, bool wavcurvecomp,
|
||||
float sigm, int & maxlvl, float fatdet, float fatanch, float chromalev)
|
||||
float sigm, int & maxlvl, float fatdet, float fatanch, float chromalev, float chromablu, bool blurlc)
|
||||
{
|
||||
wavelet_decomposition *wdspot = new wavelet_decomposition(tmp[0], bfw, bfh, level_br, 1, sk, numThreads, 6);
|
||||
|
||||
@ -6946,9 +6946,11 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
if (wdspot->memoryAllocationFailed) {
|
||||
return;
|
||||
}
|
||||
wavelet_decomposition *wdspota;
|
||||
wavelet_decomposition *wdspotb;
|
||||
if(chromalev != 1.f) {
|
||||
|
||||
wavelet_decomposition *wdspota = nullptr;
|
||||
wavelet_decomposition *wdspotb = nullptr;
|
||||
|
||||
if (chromalev != 1.f || chromablu != 1.f) {
|
||||
wdspota = new wavelet_decomposition(tmpa[0], bfw, bfh, level_br, 1, sk, numThreads, 6);
|
||||
|
||||
//first decomposition for compress dynamic range positive values and other process
|
||||
@ -7088,11 +7090,12 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
float **wav_b = nullptr;
|
||||
|
||||
float **wav_L = wdspot->level_coeffs(level);
|
||||
if(chromalev != 1.f) {
|
||||
wav_a = wdspota->level_coeffs(level);
|
||||
wav_b = wdspotb->level_coeffs(level);
|
||||
|
||||
if (chromalev != 1.f) {
|
||||
wav_a = wdspota->level_coeffs(level);
|
||||
wav_b = wdspotb->level_coeffs(level);
|
||||
}
|
||||
|
||||
|
||||
float rap = mean[level] - 2.f * sigm * sigma[level];
|
||||
|
||||
if (rap > 0.f) {
|
||||
@ -7158,7 +7161,8 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
|
||||
float alpha = max((1024.f + 15.f * (float) cpMul * beta) / 1024.f, 0.02f) ;
|
||||
wav_L[dir][i] *= alpha;
|
||||
if(chromalev != 1.f) {
|
||||
|
||||
if (chromalev != 1.f) {
|
||||
wav_a[dir][i] *= alpha * chromalev;
|
||||
wav_b[dir][i] *= alpha * chromalev;
|
||||
}
|
||||
@ -7188,6 +7192,8 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
int leve = maxlvl;
|
||||
|
||||
float ****templevel = nullptr;
|
||||
float ****templevela = nullptr;
|
||||
float ****templevelb = nullptr;
|
||||
|
||||
if (wavcurvelev || wavcurvecomp) {
|
||||
fatParams.enabled = wavcurvecomp;
|
||||
@ -7207,19 +7213,53 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
}
|
||||
}
|
||||
|
||||
if (chromablu != 1.f) {
|
||||
templevela = new float***[dir];
|
||||
templevelb = new float***[dir];
|
||||
|
||||
//allocate memory for 3 DIR n levels, H_L, W_L
|
||||
for (int d = 0; d < dir; d++) {
|
||||
templevela[d] = new float**[leve];
|
||||
templevelb[d] = new float**[leve];
|
||||
|
||||
for (int k = 0; k < leve; k++) {
|
||||
templevela[d][k] = new float*[H_L];
|
||||
templevelb[d][k] = new float*[H_L];
|
||||
|
||||
for (int i = 0; i < H_L; i++) {
|
||||
templevela[d][k][i] = new float[W_L];
|
||||
templevelb[d][k][i] = new float[W_L];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//fill array templevel with wavelet value level dir
|
||||
for (int dir = 1; dir < 4; dir++) {
|
||||
for (int level = level_bl; level < maxlvl; ++level) {
|
||||
int W_L = wdspot->level_W(level);
|
||||
int H_L = wdspot->level_H(level);
|
||||
float **wav_a = nullptr;
|
||||
float **wav_b = nullptr;
|
||||
float **wav_L = wdspot->level_coeffs(level);
|
||||
// float **wav_LN = wdspotneg->level_coeffs(level);
|
||||
if (chromablu != 1.f) {
|
||||
wav_a = wdspota->level_coeffs(level);
|
||||
wav_b = wdspotb->level_coeffs(level);
|
||||
}
|
||||
|
||||
for (int y = 0; y < H_L; y++) {
|
||||
for (int x = 0; x < W_L; x++) {
|
||||
float val = wav_L[dir][y * W_L + x];
|
||||
if (chromablu != 1.f) {
|
||||
float vala = wav_a[dir][y * W_L + x];
|
||||
float valb = wav_b[dir][y * W_L + x];
|
||||
templevela[dir - 1][level][y][x] = vala;
|
||||
templevelb[dir - 1][level][y][x] = valb;
|
||||
|
||||
}
|
||||
// if (val >= 0.f) {
|
||||
templevel[dir - 1][level][y][x] = val;
|
||||
// } else {
|
||||
@ -7269,6 +7309,13 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
#pragma omp parallel
|
||||
{
|
||||
gaussianBlur(templevel[dir - 1][level], templevel[dir - 1][level], W_L, H_L, radlevblur * klev);
|
||||
|
||||
if (chromablu != 1.f && !blurlc) {
|
||||
gaussianBlur(templevela[dir - 1][level], templevela[dir - 1][level], W_L, H_L, radlevblur * klev * chromablu);
|
||||
gaussianBlur(templevelb[dir - 1][level], templevelb[dir - 1][level], W_L, H_L, radlevblur * klev * chromablu);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7281,10 +7328,22 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
int W_L = wdspot->level_W(level);
|
||||
int H_L = wdspot->level_H(level);
|
||||
float **wav_L = wdspot->level_coeffs(level);
|
||||
float **wav_a = nullptr;
|
||||
float **wav_b = nullptr;
|
||||
// float **wav_LN = wdspotneg->level_coeffs(level);
|
||||
if (chromablu != 1.f) {
|
||||
wav_a = wdspota->level_coeffs(level);
|
||||
wav_b = wdspotb->level_coeffs(level);
|
||||
}
|
||||
|
||||
for (int y = 0; y < H_L; y++) {
|
||||
for (int x = 0; x < W_L; x++) {
|
||||
wav_L[dir][y * W_L + x] = templevel[dir - 1][level][y][x];
|
||||
if (chromablu != 1.f) {
|
||||
wav_a[dir][y * W_L + x] = templevela[dir - 1][level][y][x];
|
||||
wav_b[dir][y * W_L + x] = templevelb[dir - 1][level][y][x];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7313,6 +7372,34 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
|
||||
delete [] templevel;
|
||||
|
||||
|
||||
|
||||
if (chromablu != 1.f) {
|
||||
for (int i = 0; i < dir; i++) {
|
||||
for (int j = 0; j < leve; j++) {
|
||||
for (int l = 0; l < H_L; l++) {
|
||||
delete [] templevela[i][j][l];
|
||||
delete [] templevelb[i][j][l];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < dir; i++) {
|
||||
for (int j = 0; j < leve; j++) {
|
||||
delete [] templevela[i][j];
|
||||
delete [] templevelb[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < dir; i++) {
|
||||
delete [] templevela[i];
|
||||
delete [] templevelb[i];
|
||||
}
|
||||
|
||||
delete [] templevela;
|
||||
delete [] templevelb;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -7388,12 +7475,14 @@ void ImProcFunctions::wavcontrast4(float ** tmp, float ** tmpa, float ** tmpb, f
|
||||
|
||||
//reconstruct all and compress dynamic range positive
|
||||
wdspot->reconstruct(tmp[0], 1.f);
|
||||
if(chromalev != 1.f) {
|
||||
|
||||
if (chromalev != 1.f || chromablu != 1.f) {
|
||||
wdspota->reconstruct(tmpa[0], 1.f);
|
||||
wdspotb->reconstruct(tmpb[0], 1.f);
|
||||
delete wdspota;
|
||||
delete wdspotb;
|
||||
}
|
||||
|
||||
delete wdspot;
|
||||
|
||||
//compress dynamic range negative in case of - seems no need
|
||||
@ -9502,7 +9591,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bool wavcurvecon = false;
|
||||
bool loccompwavutili = false;
|
||||
bool wavcurvecomp = false;
|
||||
wavcontrast4(bufmaskblurbl->L, nullptr, nullptr, contrast, 0.f, 0.f, 0.f, GW, GH, level_bl, level_hl, level_br, level_hr, sk, numThreads, loclmasCurveblwav, lmasutiliblwav, dummy, loclevwavutili, wavcurvelev, dummy, locconwavutili, wavcurvecon, dummy, loccompwavutili, wavcurvecomp, 1.f, maxlvl, 0.f, 0.f, 1.f);
|
||||
wavcontrast4(bufmaskblurbl->L, nullptr, nullptr, contrast, 0.f, 0.f, 0.f, GW, GH, level_bl, level_hl, level_br, level_hr, sk, numThreads, loclmasCurveblwav, lmasutiliblwav, dummy, loclevwavutili, wavcurvelev, dummy, locconwavutili, wavcurvecon, dummy, loccompwavutili, wavcurvecomp, 1.f, maxlvl, 0.f, 0.f, 1.f, 1.f, false);
|
||||
}
|
||||
|
||||
int shado = params->locallab.spots.at(sp).shadmaskbl;
|
||||
@ -11431,8 +11520,9 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
const float fatanch = params->locallab.spots.at(sp).fatanch;
|
||||
const float fatres = params->locallab.spots.at(sp).fatres;
|
||||
const float chrol = params->locallab.spots.at(sp).chromalev;
|
||||
const float chrobl = params->locallab.spots.at(sp).chromablu;
|
||||
|
||||
wavcontrast4(tmp1->L, tmp1->a, tmp1->b, contrast, fatres, radblur, radlevblur, tmp1->W, tmp1->H, level_bl, level_hl, level_br, level_hr, sk, numThreads, locwavCurve, locwavutili, loclevwavCurve, loclevwavutili, wavcurvelev, locconwavCurve, locconwavutili, wavcurvecon, loccompwavCurve, loccompwavutili, wavcurvecomp, sigma, maxlvl, fatdet, fatanch, chrol);
|
||||
wavcontrast4(tmp1->L, tmp1->a, tmp1->b, contrast, fatres, radblur, radlevblur, tmp1->W, tmp1->H, level_bl, level_hl, level_br, level_hr, sk, numThreads, locwavCurve, locwavutili, loclevwavCurve, loclevwavutili, wavcurvelev, locconwavCurve, locconwavutili, wavcurvecon, loccompwavCurve, loccompwavutili, wavcurvecomp, sigma, maxlvl, fatdet, fatanch, chrol, chrobl, blurlc);
|
||||
|
||||
const float satur = params->locallab.spots.at(sp).residchro;
|
||||
|
||||
|
@ -905,6 +905,7 @@ enum ProcEventCode {
|
||||
Evlocallabchromasklc = 876,
|
||||
EvlocallabLmasklcshape = 877,
|
||||
Evlocallabchromalev = 878,
|
||||
Evlocallabchromablu = 879,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -2728,6 +2728,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
residchro(0.0),
|
||||
sigma(1.0),
|
||||
chromalev(1.0),
|
||||
chromablu(1.0),
|
||||
fatdet(40.0),
|
||||
fatanch(50.0),
|
||||
fatres(0.0),
|
||||
@ -3134,6 +3135,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& residchro == other.residchro
|
||||
&& sigma == other.sigma
|
||||
&& chromalev == other.chromalev
|
||||
&& chromablu == other.chromablu
|
||||
&& fatdet == other.fatdet
|
||||
&& fatanch == other.fatanch
|
||||
&& fatres == other.fatres
|
||||
@ -4519,6 +4521,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).residchro, "Locallab", "Residchro_" + std::to_string(i), spot.residchro, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sigma, "Locallab", "Sigma_" + std::to_string(i), spot.sigma, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chromalev, "Locallab", "Chromalev_" + std::to_string(i), spot.chromalev, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chromablu, "Locallab", "Chromablu_" + std::to_string(i), spot.chromablu, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).fatdet, "Locallab", "Fatdet_" + std::to_string(i), spot.fatdet, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).fatanch, "Locallab", "Fatanch_" + std::to_string(i), spot.fatanch, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).fatres, "Locallab", "Fatres_" + std::to_string(i), spot.fatres, keyFile);
|
||||
@ -6055,6 +6058,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Residchro_" + std::to_string(i), pedited, spot.residchro, spotEdited.residchro);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigma_" + std::to_string(i), pedited, spot.sigma, spotEdited.sigma);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chromalev_" + std::to_string(i), pedited, spot.chromalev, spotEdited.chromalev);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chromablu_" + std::to_string(i), pedited, spot.chromablu, spotEdited.chromablu);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Fatdet_" + std::to_string(i), pedited, spot.fatdet, spotEdited.fatdet);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Fatanch_" + std::to_string(i), pedited, spot.fatanch, spotEdited.fatanch);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Fatres_" + std::to_string(i), pedited, spot.fatres, spotEdited.fatres);
|
||||
|
@ -1271,6 +1271,7 @@ struct LocallabParams {
|
||||
double residchro;
|
||||
double sigma;
|
||||
double chromalev;
|
||||
double chromablu;
|
||||
double fatdet;
|
||||
double fatanch;
|
||||
double fatres;
|
||||
|
@ -908,7 +908,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, // Evlocallabradmasklc
|
||||
LUMINANCECURVE, //Evlocallabchromasklc
|
||||
LUMINANCECURVE, //EvlocallabLmasklcshape
|
||||
LUMINANCECURVE //Evlocallabchromalev
|
||||
LUMINANCECURVE, //Evlocallabchromalev
|
||||
LUMINANCECURVE //Evlocallabchromablu
|
||||
|
||||
};
|
||||
|
||||
|
@ -576,6 +576,7 @@ sensilc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIS"), 0, 100, 1, 19))),
|
||||
residchro(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RESIDCHRO"), -100, 100, 1, 0))),
|
||||
sigma(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SIGMAWAV"), 0.2, 2.5, 0.01, 1.))),
|
||||
chromalev(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHROMALEV"), 0.01, 2., 0.01, 1.))),
|
||||
chromablu(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHROMABLU"), 0.01, 2., 0.01, 1.))),
|
||||
fatdet(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATDETAIL"), -100., 300., 1., 0.))),
|
||||
fatanch(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATANCHOR"), 1., 100., 1., 50., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))),
|
||||
fatres(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATRES"), 0., 100., 1., 0.))),
|
||||
@ -2899,6 +2900,7 @@ pe(nullptr)
|
||||
residchro->setAdjusterListener(this);
|
||||
sigma->setAdjusterListener(this);
|
||||
chromalev->setAdjusterListener(this);
|
||||
chromablu->setAdjusterListener(this);
|
||||
fatdet->setAdjusterListener(this);
|
||||
fatanch->setAdjusterListener(this);
|
||||
fatres->setAdjusterListener(this);
|
||||
@ -2930,6 +2932,7 @@ pe(nullptr)
|
||||
blurlevelFrame->set_label_align(0.025, 0.5);
|
||||
ToolParamBlock* const blurlevcontBox = Gtk::manage(new ToolParamBlock());
|
||||
blurlevcontBox->pack_start(*levelblur);
|
||||
blurlevcontBox->pack_start(*chromablu);
|
||||
blurlevcontBox->pack_start(*LocalcurveEditorwavlev, Gtk::PACK_SHRINK, 4);
|
||||
blurlevcontBox->pack_start(*separatorblu);
|
||||
blurlevcontBox->pack_start(*residblur);
|
||||
@ -5253,6 +5256,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pp->locallab.spots.at(pp->locallab.selspot).residchro = residchro->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).sigma = sigma->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).chromalev = chromalev->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).chromablu = chromablu->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).fatdet = fatdet->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).fatanch = fatanch->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).fatres = fatres->getValue();
|
||||
@ -5662,6 +5666,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pe->locallab.spots.at(pp->locallab.selspot).residchro = pe->locallab.spots.at(pp->locallab.selspot).residchro || residchro->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).sigma = pe->locallab.spots.at(pp->locallab.selspot).sigma || sigma->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).chromalev = pe->locallab.spots.at(pp->locallab.selspot).chromalev || chromalev->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).chromablu = pe->locallab.spots.at(pp->locallab.selspot).chromablu || chromablu->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).fatdet = pe->locallab.spots.at(pp->locallab.selspot).fatdet || fatdet->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).fatanch = pe->locallab.spots.at(pp->locallab.selspot).fatanch || fatanch->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).fatres = pe->locallab.spots.at(pp->locallab.selspot).fatres || fatres->getEditedState();
|
||||
@ -6070,6 +6075,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).residchro = pedited->locallab.spots.at(pp->locallab.selspot).residchro || residchro->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).sigma = pedited->locallab.spots.at(pp->locallab.selspot).sigma || sigma->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).chromalev = pedited->locallab.spots.at(pp->locallab.selspot).chromalev || chromalev->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).chromablu = pedited->locallab.spots.at(pp->locallab.selspot).chromablu || chromablu->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).fatdet = pedited->locallab.spots.at(pp->locallab.selspot).fatdet || fatdet->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).fatanch = pedited->locallab.spots.at(pp->locallab.selspot).fatanch || fatanch->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).fatres = pedited->locallab.spots.at(pp->locallab.selspot).fatres || fatres->getEditedState();
|
||||
@ -6647,6 +6653,7 @@ void Locallab::localcontMethodChanged()
|
||||
residchro->hide();
|
||||
sigma->hide();
|
||||
chromalev->hide();
|
||||
chromablu->hide();
|
||||
fatdet->hide();
|
||||
fatanch->hide();
|
||||
fatres->hide();
|
||||
@ -6674,6 +6681,7 @@ void Locallab::localcontMethodChanged()
|
||||
residchro->show();
|
||||
sigma->show();
|
||||
chromalev->show();
|
||||
chromablu->show();
|
||||
fatdet->show();
|
||||
fatanch->show();
|
||||
fatres->show();
|
||||
@ -8748,6 +8756,7 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
||||
residchro->setDefault(defSpot->residchro);
|
||||
sigma->setDefault(defSpot->sigma);
|
||||
chromalev->setDefault(defSpot->chromalev);
|
||||
chromablu->setDefault(defSpot->chromablu);
|
||||
fatdet->setDefault(defSpot->fatdet);
|
||||
fatanch->setDefault(defSpot->fatanch);
|
||||
fatres->setDefault(defSpot->fatres);
|
||||
@ -8988,6 +8997,7 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
||||
residchro->setDefaultEditedState(Irrelevant);
|
||||
sigma->setDefaultEditedState(Irrelevant);
|
||||
chromalev->setDefaultEditedState(Irrelevant);
|
||||
chromablu->setDefaultEditedState(Irrelevant);
|
||||
fatdet->setDefaultEditedState(Irrelevant);
|
||||
fatanch->setDefaultEditedState(Irrelevant);
|
||||
fatres->setDefaultEditedState(Irrelevant);
|
||||
@ -9233,6 +9243,7 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
||||
residchro->setDefaultEditedState(defSpotState->residchro ? Edited : UnEdited);
|
||||
sigma->setDefaultEditedState(defSpotState->sigma ? Edited : UnEdited);
|
||||
chromalev->setDefaultEditedState(defSpotState->chromalev ? Edited : UnEdited);
|
||||
chromablu->setDefaultEditedState(defSpotState->chromablu ? Edited : UnEdited);
|
||||
fatdet->setDefaultEditedState(defSpotState->fatdet ? Edited : UnEdited);
|
||||
fatanch->setDefaultEditedState(defSpotState->fatanch ? Edited : UnEdited);
|
||||
fatres->setDefaultEditedState(defSpotState->fatres ? Edited : UnEdited);
|
||||
@ -10416,6 +10427,12 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
|
||||
}
|
||||
}
|
||||
|
||||
if (a == chromablu) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabchromablu, chromablu->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == fatdet) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabfatdet, fatdet->getTextValue());
|
||||
@ -10926,6 +10943,7 @@ void Locallab::setBatchMode(bool batchMode)
|
||||
residchro->showEditedCB();
|
||||
sigma->showEditedCB();
|
||||
chromalev->showEditedCB();
|
||||
chromablu->showEditedCB();
|
||||
fatdet->showEditedCB();
|
||||
fatanch->showEditedCB();
|
||||
fatres->showEditedCB();
|
||||
@ -11989,6 +12007,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
residchro->setValue(pp->locallab.spots.at(index).residchro);
|
||||
sigma->setValue(pp->locallab.spots.at(index).sigma);
|
||||
chromalev->setValue(pp->locallab.spots.at(index).chromalev);
|
||||
chromablu->setValue(pp->locallab.spots.at(index).chromablu);
|
||||
fatdet->setValue(pp->locallab.spots.at(index).fatdet);
|
||||
fatanch->setValue(pp->locallab.spots.at(index).fatanch);
|
||||
fatres->setValue(pp->locallab.spots.at(index).fatres);
|
||||
@ -12502,6 +12521,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
residchro->setEditedState(spotState->residchro ? Edited : UnEdited);
|
||||
sigma->setEditedState(spotState->sigma ? Edited : UnEdited);
|
||||
chromalev->setEditedState(spotState->chromalev ? Edited : UnEdited);
|
||||
chromablu->setEditedState(spotState->chromablu ? Edited : UnEdited);
|
||||
fatdet->setEditedState(spotState->fatdet ? Edited : UnEdited);
|
||||
fatanch->setEditedState(spotState->fatanch ? Edited : UnEdited);
|
||||
fatres->setEditedState(spotState->fatres ? Edited : UnEdited);
|
||||
@ -13026,6 +13046,7 @@ void Locallab::updateSpecificGUIState()
|
||||
residchro->hide();
|
||||
sigma->hide();
|
||||
chromalev->hide();
|
||||
chromablu->hide();
|
||||
fatdet->hide();
|
||||
fatanch->hide();
|
||||
fatres->hide();
|
||||
@ -13052,6 +13073,7 @@ void Locallab::updateSpecificGUIState()
|
||||
levelblur->show();
|
||||
sigma->show();
|
||||
chromalev->show();
|
||||
chromablu->show();
|
||||
fatdet->show();
|
||||
fatanch->show();
|
||||
fatres->show();
|
||||
|
@ -371,6 +371,7 @@ private:
|
||||
Adjuster* const residchro;
|
||||
Adjuster* const sigma;
|
||||
Adjuster* const chromalev;
|
||||
Adjuster* const chromablu;
|
||||
Adjuster* const fatdet;
|
||||
Adjuster* const fatanch;
|
||||
Adjuster* const fatres;
|
||||
|
@ -1264,6 +1264,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).residchro = locallab.spots.at(j).residchro && pSpot.residchro == otherSpot.residchro;
|
||||
locallab.spots.at(j).sigma = locallab.spots.at(j).sigma && pSpot.sigma == otherSpot.sigma;
|
||||
locallab.spots.at(j).chromalev = locallab.spots.at(j).chromalev && pSpot.chromalev == otherSpot.chromalev;
|
||||
locallab.spots.at(j).chromablu = locallab.spots.at(j).chromablu && pSpot.chromablu == otherSpot.chromablu;
|
||||
locallab.spots.at(j).fatdet = locallab.spots.at(j).fatdet && pSpot.fatdet == otherSpot.fatdet;
|
||||
locallab.spots.at(j).fatanch = locallab.spots.at(j).fatanch && pSpot.fatanch == otherSpot.fatanch;
|
||||
locallab.spots.at(j).fatres = locallab.spots.at(j).fatres && pSpot.fatres == otherSpot.fatres;
|
||||
@ -4031,6 +4032,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).chromalev = mods.locallab.spots.at(i).chromalev;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).chromablu) {
|
||||
toEdit.locallab.spots.at(i).chromablu = mods.locallab.spots.at(i).chromablu;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).fatdet) {
|
||||
toEdit.locallab.spots.at(i).fatdet = mods.locallab.spots.at(i).fatdet;
|
||||
}
|
||||
@ -5603,6 +5608,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
residchro(v),
|
||||
sigma(v),
|
||||
chromalev(v),
|
||||
chromablu(v),
|
||||
fatdet(v),
|
||||
fatanch(v),
|
||||
fatres(v),
|
||||
@ -5999,6 +6005,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
residchro = v;
|
||||
sigma = v;
|
||||
chromalev = v;
|
||||
chromablu = v;
|
||||
fatdet = v;
|
||||
fatanch = v;
|
||||
fatres = v;
|
||||
|
@ -697,6 +697,7 @@ public:
|
||||
bool residchro;
|
||||
bool sigma;
|
||||
bool chromalev;
|
||||
bool chromablu;
|
||||
bool fatdet;
|
||||
bool fatanch;
|
||||
bool fatres;
|
||||
|
Loading…
x
Reference in New Issue
Block a user