change gamma and log
This commit is contained in:
parent
257d4bf54e
commit
d669f2ff2e
@ -654,9 +654,8 @@ HISTORY_MSG_421;Retinex - Gamma retinex
|
||||
HISTORY_MSG_422;Retinex - gamma
|
||||
HISTORY_MSG_423;Retinex - slope
|
||||
HISTORY_MSG_424;Retinex - HL threshold
|
||||
HISTORY_MSG_425;Retinex - HL control red
|
||||
HISTORY_MSG_426;Retinex - HL control GB
|
||||
HISTORY_MSG_427;Retinex - Hue equalizer
|
||||
HISTORY_MSG_425;Retinex - Log base
|
||||
HISTORY_MSG_426;Retinex - Hue equalizer
|
||||
HISTORY_NEWSNAPSHOT;Add
|
||||
HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
|
||||
HISTORY_SNAPSHOTS;Snapshots
|
||||
@ -1561,13 +1560,15 @@ TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones
|
||||
TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones.
|
||||
TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
|
||||
TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
|
||||
TP_RETINEX_BASELOG;Logarithm base
|
||||
TP_RETINEX_BASELOG_TOOLTIP;Change base logarithm\nLow values = near linear\nHigh values increase effect
|
||||
TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL
|
||||
TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b*
|
||||
TP_RETINEX_CURVEEDITOR_CD;L=f(L)
|
||||
TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Correct raw data to reduce halos and artifacts
|
||||
TP_RETINEX_CONTEDIT_LH;Hue equalizer
|
||||
TP_RETINEX_CURVEEDITOR_LH;Strength=f(H)
|
||||
TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Equalize strength in function of hue\nIf Reinex method='highlight' also acts on the chroma
|
||||
TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Equalize strength in function of hue\nIf Retinex method='highlight' also acts on the chroma
|
||||
TP_RETINEX_GAIN;Gain
|
||||
TP_RETINEX_GAIN_TOOLTIP;Acts on the transmission in combination with offset, this is very different from others settings. Used for black or white pixels, and for better balance the histogram.
|
||||
TP_RETINEX_GAM;Gamma retinex
|
||||
@ -1584,9 +1585,6 @@ TP_RETINEX_HIGHLIG;Highlight
|
||||
TP_RETINEX_HIGHLIGPLUS;Highlight More
|
||||
TP_RETINEX_HIGHLIGHT;Highlight threshold
|
||||
TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm\nNeeds probably to change settings (Neighboring pixels), and increase Raw White-point
|
||||
TP_RETINEX_HIGHLIGHT2;Highlight control (red)
|
||||
TP_RETINEX_HIGHLIGHT2_TOOLTIP;Acts on RGB channels to reduce magenta (red = master)
|
||||
TP_RETINEX_HIGHLIGHT3;Highlight control (blue green)
|
||||
TP_RETINEX_HSLSPACE_LIN;HSL-Linear
|
||||
TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic
|
||||
TP_RETINEX_LABEL;Retinex
|
||||
|
@ -228,7 +228,11 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
|
||||
int moderetinex = 2; // default to 2 ( deh.retinexMethod == "high" )
|
||||
float hig = ((float) deh.highl)/100.f;
|
||||
bool higplus = false ;
|
||||
|
||||
float elogt;
|
||||
float hl = deh.baselog;
|
||||
if(hl >= 2.71828f) elogt = 2.71828f + SQR(SQR(hl - 2.71828f));
|
||||
else elogt = hl;
|
||||
// printf("elo=%f\n",elogt);
|
||||
FlatCurve* shcurve = NULL;//curve L=f(H)
|
||||
bool lhutili = false;
|
||||
|
||||
@ -308,6 +312,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
|
||||
vfloat pondv = F2V(pond);
|
||||
vfloat limMinv = F2V(ilimD);
|
||||
vfloat limMaxv = F2V(limD);
|
||||
vfloat elogtv = F2V(elogt);
|
||||
|
||||
#endif
|
||||
#ifdef _OPENMP
|
||||
@ -316,7 +321,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
|
||||
|
||||
for (int i = 0; i < H_L; i++) {
|
||||
int j = 0;
|
||||
|
||||
|
||||
#ifdef __SSE2__
|
||||
|
||||
if(useHslLin) {
|
||||
@ -325,7 +330,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
|
||||
}
|
||||
} else {
|
||||
for (; j < W_L - 3; j += 4) {
|
||||
_mm_storeu_ps(&luminance[i][j], LVFU(luminance[i][j]) + pondv * xlogf(LIMV(LVFU(src[i][j]) / LVFU(out[i][j]), limMinv, limMaxv) ));
|
||||
_mm_storeu_ps(&luminance[i][j], LVFU(luminance[i][j]) + pondv * xlogf(LIMV(LVFU(src[i][j]) / LVFU(out[i][j]), limMinv, limMaxv) )/xlogf(elogtv));
|
||||
}
|
||||
}
|
||||
|
||||
@ -337,7 +342,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
|
||||
}
|
||||
} else {
|
||||
for (; j < W_L; j++) {
|
||||
luminance[i][j] += pond * xlogf(LIM(src[i][j] / out[i][j], ilimD, limD));
|
||||
luminance[i][j] += pond * xlogf(LIM(src[i][j] / out[i][j], ilimD, limD))/log(elogt);// /logt ?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -451,9 +451,9 @@ enum ProcEvent {
|
||||
EvLgam = 421,
|
||||
EvLslope = 422,
|
||||
EvLhighl = 423,
|
||||
EvLhighlig = 424,
|
||||
EvLgrbl = 425,
|
||||
EvRetinexlhcurve = 426,
|
||||
EvLbaselog = 424,
|
||||
// EvLgrbl = 425,
|
||||
EvRetinexlhcurve = 425,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
}
|
||||
|
@ -150,8 +150,8 @@ void RetinexParams::setDefaults()
|
||||
vart = 125;
|
||||
limd = 8;
|
||||
highl = 10;
|
||||
highlig = 100;
|
||||
grbl = 50;
|
||||
baselog = 2.71828;
|
||||
// grbl = 50;
|
||||
retinexMethod = "high";
|
||||
retinexcolorspace = "Lab";
|
||||
gammaretinex = "none";
|
||||
@ -1486,13 +1486,13 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol
|
||||
keyFile.set_integer ("Retinex", "highl", retinex.highl);
|
||||
}
|
||||
|
||||
if (!pedited || pedited->retinex.highlig) {
|
||||
keyFile.set_integer ("Retinex", "highlig", retinex.highlig);
|
||||
if (!pedited || pedited->retinex.baselog) {
|
||||
keyFile.set_double ("Retinex", "baselog", retinex.baselog);
|
||||
}
|
||||
|
||||
if (!pedited || pedited->retinex.grbl) {
|
||||
keyFile.set_integer ("Retinex", "grbl", retinex.grbl);
|
||||
}
|
||||
// if (!pedited || pedited->retinex.grbl) {
|
||||
// keyFile.set_integer ("Retinex", "grbl", retinex.grbl);
|
||||
// }
|
||||
|
||||
if (!pedited || pedited->retinex.retinexMethod) {
|
||||
keyFile.set_string ("Retinex", "RetinexMethod", retinex.retinexMethod);
|
||||
@ -3907,22 +3907,22 @@ int ProcParams::load (Glib::ustring fname, ParamsEdited* pedited)
|
||||
}
|
||||
}
|
||||
|
||||
if (keyFile.has_key ("Retinex", "highlig")) {
|
||||
retinex.highlig = keyFile.get_integer ("Retinex", "highlig");
|
||||
if (keyFile.has_key ("Retinex", "baselog")) {
|
||||
retinex.baselog = keyFile.get_double ("Retinex", "baselog");
|
||||
|
||||
if (pedited) {
|
||||
pedited->retinex.highlig = true;
|
||||
pedited->retinex.baselog = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (keyFile.has_key ("Retinex", "grbl")) {
|
||||
/* if (keyFile.has_key ("Retinex", "grbl")) {
|
||||
retinex.grbl = keyFile.get_integer ("Retinex", "grbl");
|
||||
|
||||
if (pedited) {
|
||||
pedited->retinex.grbl = true;
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
if (keyFile.has_key ("Retinex", "CDCurve")) {
|
||||
retinex.cdcurve = keyFile.get_double_list ("Retinex", "CDCurve");
|
||||
|
||||
@ -7328,8 +7328,8 @@ bool ProcParams::operator== (const ProcParams& other)
|
||||
&& retinex.gain == other.retinex.gain
|
||||
&& retinex.limd == other.retinex.limd
|
||||
&& retinex.highl == other.retinex.highl
|
||||
&& retinex.highlig == other.retinex.highlig
|
||||
&& retinex.grbl == other.retinex.grbl
|
||||
&& retinex.baselog == other.retinex.baselog
|
||||
// && retinex.grbl == other.retinex.grbl
|
||||
&& retinex.offs == other.retinex.offs
|
||||
&& retinex.retinexMethod == other.retinex.retinexMethod
|
||||
&& retinex.retinexcolorspace == other.retinex.retinexcolorspace
|
||||
|
@ -286,8 +286,8 @@ public:
|
||||
int vart;
|
||||
int limd;
|
||||
int highl;
|
||||
int highlig;
|
||||
int grbl;
|
||||
double baselog;
|
||||
// int grbl;
|
||||
bool medianmap;
|
||||
RetinexParams ();
|
||||
void setDefaults();
|
||||
|
@ -1829,6 +1829,8 @@ void RawImageSource::retinexPrepareBuffers(ColorManagementParams cmp, RetinexPar
|
||||
double pwr = 1.0 / retinexParams.gam;
|
||||
double gamm = retinexParams.gam;
|
||||
double ts = retinexParams.slope;
|
||||
double gamm2 = retinexParams.gam;
|
||||
if(gamm2 < 1.) {pwr = 1./pwr; gamm = 1. / gamm;}
|
||||
|
||||
int mode = 0, imax = 0;
|
||||
Color::calcGamma(pwr, ts, mode, imax, g_a0, g_a1, g_a2, g_a3, g_a4, g_a5); // call to calcGamma with selected gamma and slope
|
||||
@ -1839,7 +1841,10 @@ void RawImageSource::retinexPrepareBuffers(ColorManagementParams cmp, RetinexPar
|
||||
double add = g_a4;
|
||||
double mul = 1. + g_a4;
|
||||
double x;
|
||||
x = Color::gammareti (val, gamm, start, ts, mul , add);
|
||||
if(gamm2 < 1.) {start = g_a2; add = g_a4;
|
||||
x = Color::igammareti (val, gamm, start, ts, mul , add);}
|
||||
else
|
||||
x = Color::gammareti (val, gamm, start, ts, mul , add);
|
||||
|
||||
lutTonereti[i] = CLIP(x * 65535.);// CLIP avoid in some case extra values
|
||||
}
|
||||
@ -2084,9 +2089,11 @@ void RawImageSource::retinex(ColorManagementParams cmp, RetinexParams deh, ToneC
|
||||
double g_a0, g_a1, g_a2, g_a3, g_a4, g_a5;
|
||||
double pwr = 1.0 / deh.gam;
|
||||
double gamm = deh.gam;
|
||||
double gamm2 = gamm;
|
||||
double ts = deh.slope;
|
||||
int mode = 0, imax = 0;
|
||||
|
||||
if(gamm2 < 1.) {pwr = 1./pwr; gamm = 1. / gamm;}
|
||||
|
||||
Color::calcGamma(pwr, ts, mode, imax, g_a0, g_a1, g_a2, g_a3, g_a4, g_a5); // call to calcGamma with selected gamma and slope
|
||||
// printf("g_a0=%f g_a1=%f g_a2=%f g_a3=%f g_a4=%f\n", g_a0,g_a1,g_a2,g_a3,g_a4);
|
||||
for (int i = 0; i < 65536; i++) {
|
||||
@ -2095,7 +2102,10 @@ void RawImageSource::retinex(ColorManagementParams cmp, RetinexParams deh, ToneC
|
||||
double mul = 1. + g_a4;
|
||||
double add = g_a4;
|
||||
double start = g_a2;
|
||||
x = Color::igammareti (val, gamm, start, ts, mul , add);
|
||||
if(gamm2 < 1.) {start = g_a3; add = g_a3;
|
||||
x = Color::gammareti (val, gamm, start, ts, mul , add);}
|
||||
else
|
||||
x = Color::igammareti (val, gamm, start, ts, mul , add);
|
||||
|
||||
lutToneireti[i] = CLIP(x * 65535.);
|
||||
}
|
||||
|
@ -451,8 +451,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
DEMOSAIC, // EvLgam
|
||||
DEMOSAIC, // EvLslope
|
||||
ALLNORAW, // EvLhighl
|
||||
DEMOSAIC, // EvLhighlig
|
||||
DEMOSAIC, // EvLgrbl
|
||||
DEMOSAIC, // EvLbaselog
|
||||
// DEMOSAIC, // EvLgrbl
|
||||
DEMOSAIC // EvRetinexlhcurve
|
||||
};
|
||||
|
||||
|
@ -66,8 +66,8 @@ void ParamsEdited::set (bool v)
|
||||
retinex.vart = v;
|
||||
retinex.limd = v;
|
||||
retinex.highl = v;
|
||||
retinex.highlig = v;
|
||||
retinex.grbl = v;
|
||||
retinex.baselog = v;
|
||||
// retinex.grbl = v;
|
||||
retinex.medianmap = v;
|
||||
retinex.transmissionCurve = v;
|
||||
retinex.retinex = v;
|
||||
@ -543,8 +543,8 @@ void ParamsEdited::initFrom (const std::vector<rtengine::procparams::ProcParams>
|
||||
retinex.vart = retinex.vart && p.retinex.vart == other.retinex.vart;
|
||||
retinex.limd = retinex.limd && p.retinex.limd == other.retinex.limd;
|
||||
retinex.highl = retinex.highl && p.retinex.highl == other.retinex.highl;
|
||||
retinex.highlig = retinex.highlig && p.retinex.highlig == other.retinex.highlig;
|
||||
retinex.grbl = retinex.grbl && p.retinex.grbl == other.retinex.grbl;
|
||||
retinex.baselog = retinex.baselog && p.retinex.baselog == other.retinex.baselog;
|
||||
// retinex.grbl = retinex.grbl && p.retinex.grbl == other.retinex.grbl;
|
||||
retinex.medianmap = retinex.medianmap && p.retinex.medianmap == other.retinex.medianmap;
|
||||
retinex.enabled = retinex.enabled && p.retinex.enabled == other.retinex.enabled;
|
||||
labCurve.lcurve = labCurve.lcurve && p.labCurve.lcurve == other.labCurve.lcurve;
|
||||
@ -1102,13 +1102,13 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten
|
||||
toEdit.retinex.highl = mods.retinex.highl;
|
||||
}
|
||||
|
||||
if (retinex.highlig) {
|
||||
toEdit.retinex.highlig = mods.retinex.highlig;
|
||||
if (retinex.baselog) {
|
||||
toEdit.retinex.baselog = mods.retinex.baselog;
|
||||
}
|
||||
|
||||
if (retinex.grbl) {
|
||||
toEdit.retinex.grbl = mods.retinex.grbl;
|
||||
}
|
||||
// if (retinex.grbl) {
|
||||
// toEdit.retinex.grbl = mods.retinex.grbl;
|
||||
// }
|
||||
|
||||
if (retinex.gain) {
|
||||
toEdit.retinex.gain = dontforceSet && options.baBehav[ADDSET_RETI_GAIN] ? toEdit.retinex.gain + mods.retinex.gain : mods.retinex.gain;
|
||||
|
@ -72,8 +72,8 @@ public:
|
||||
bool vart;
|
||||
bool limd;
|
||||
bool highl;
|
||||
bool highlig;
|
||||
bool grbl;
|
||||
bool baselog;
|
||||
// bool grbl;
|
||||
bool method;
|
||||
bool transmissionCurve;
|
||||
bool cdcurve;
|
||||
|
@ -112,8 +112,8 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
|
||||
gammaretinexConn = gammaretinex->signal_changed().connect ( sigc::mem_fun(*this, &Retinex::gammaretinexChanged) );
|
||||
gammaretinex->set_tooltip_markup (M("TP_RETINEX_GAMMA_TOOLTIP"));
|
||||
|
||||
gam = Gtk::manage (new Adjuster (M("TP_RETINEX_GAMMA"), 0.6, 1.6, 0.01, 1.30));
|
||||
slope = Gtk::manage (new Adjuster (M("TP_RETINEX_SLOPE"), 2., 20., 0.1, 3.));
|
||||
gam = Gtk::manage (new Adjuster (M("TP_RETINEX_GAMMA"), 0.6, 3.0, 0.01, 1.30));
|
||||
slope = Gtk::manage (new Adjuster (M("TP_RETINEX_SLOPE"), 1., 20., 0.1, 3.));
|
||||
|
||||
str = Gtk::manage (new Adjuster (M("TP_RETINEX_STRENGTH"), 0, 100., 1., 20.));
|
||||
neigh = Gtk::manage (new Adjuster (M("TP_RETINEX_NEIGHBOR"), 6, 100., 1., 80.));
|
||||
@ -143,13 +143,13 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
|
||||
offs = Gtk::manage (new Adjuster (M("TP_RETINEX_OFFSET"), -10000, 10000, 1, 0));
|
||||
vart = Gtk::manage (new Adjuster (M("TP_RETINEX_VARIANCE"), 50, 500, 1, 125));
|
||||
limd = Gtk::manage (new Adjuster (M("TP_RETINEX_THRESHOLD"), 2, 100, 1, 8));
|
||||
highlig = Gtk::manage (new Adjuster (M("TP_RETINEX_HIGHLIGHT2"), 1, 100, 1, 100));
|
||||
grbl = Gtk::manage (new Adjuster (M("TP_RETINEX_HIGHLIGHT3"), 1, 100, 1, 50));
|
||||
baselog = Gtk::manage (new Adjuster (M("TP_RETINEX_BASELOG"), 1.1, 100., 0.001, 2.718));
|
||||
// grbl = Gtk::manage (new Adjuster (M("TP_RETINEX_HIGHLIGHT3"), 1, 100, 1, 50));
|
||||
gain->set_tooltip_markup (M("TP_RETINEX_GAIN_TOOLTIP"));
|
||||
scal->set_tooltip_markup (M("TP_RETINEX_SCALES_TOOLTIP"));
|
||||
vart->set_tooltip_markup (M("TP_RETINEX_VARIANCE_TOOLTIP"));
|
||||
limd->set_tooltip_markup (M("TP_RETINEX_THRESHOLD_TOOLTIP"));
|
||||
highlig->set_tooltip_markup (M("TP_RETINEX_HIGHLIGHT2_TOOLTIP"));
|
||||
baselog->set_tooltip_markup (M("TP_RETINEX_BASELOG_TOOLTIP"));
|
||||
|
||||
curveEditorGH = new CurveEditorGroup (options.lastRetinexDir, M("TP_RETINEX_CONTEDIT_LH"));
|
||||
curveEditorGH->setCurveListener (this);
|
||||
@ -221,11 +221,11 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
|
||||
// settingsVBox->pack_start (*highl);
|
||||
// highl->show ();
|
||||
|
||||
settingsVBox->pack_start (*highlig);
|
||||
highlig->show ();
|
||||
settingsVBox->pack_start (*baselog);
|
||||
baselog->show ();
|
||||
|
||||
settingsVBox->pack_start (*grbl);
|
||||
grbl->show ();
|
||||
// settingsVBox->pack_start (*grbl);
|
||||
// grbl->show ();
|
||||
|
||||
settingsVBox->pack_start( *transmissionCurveEditorG, Gtk::PACK_SHRINK, 2);
|
||||
transmissionCurveEditorG->show();
|
||||
@ -295,18 +295,18 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
|
||||
highl->delay = 200;
|
||||
}
|
||||
|
||||
highlig->setAdjusterListener (this);
|
||||
baselog->setAdjusterListener (this);
|
||||
|
||||
if (highlig->delay < 200) {
|
||||
highlig->delay = 200;
|
||||
if (baselog->delay < 200) {
|
||||
baselog->delay = 200;
|
||||
}
|
||||
|
||||
grbl->setAdjusterListener (this);
|
||||
/* grbl->setAdjusterListener (this);
|
||||
|
||||
if (grbl->delay < 200) {
|
||||
grbl->delay = 200;
|
||||
}
|
||||
|
||||
*/
|
||||
pack_start (*retinexVBox);
|
||||
pack_start (*expsettings);
|
||||
|
||||
@ -441,8 +441,8 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
vart->setEditedState (pedited->retinex.vart ? Edited : UnEdited);
|
||||
limd->setEditedState (pedited->retinex.limd ? Edited : UnEdited);
|
||||
highl->setEditedState (pedited->retinex.highl ? Edited : UnEdited);
|
||||
highlig->setEditedState (pedited->retinex.highlig ? Edited : UnEdited);
|
||||
grbl->setEditedState (pedited->retinex.grbl ? Edited : UnEdited);
|
||||
baselog->setEditedState (pedited->retinex.baselog ? Edited : UnEdited);
|
||||
// grbl->setEditedState (pedited->retinex.grbl ? Edited : UnEdited);
|
||||
set_inconsistent (multiImage && !pedited->retinex.enabled);
|
||||
medianmap->set_inconsistent (!pedited->retinex.medianmap);
|
||||
|
||||
@ -476,8 +476,8 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
gam->setValue (pp->retinex.gam);
|
||||
slope->setValue (pp->retinex.slope);
|
||||
highl->setValue (pp->retinex.highl);
|
||||
highlig->setValue (pp->retinex.highlig);
|
||||
grbl->setValue (pp->retinex.grbl);
|
||||
baselog->setValue (pp->retinex.baselog);
|
||||
// grbl->setValue (pp->retinex.grbl);
|
||||
|
||||
setEnabled (pp->retinex.enabled);
|
||||
|
||||
@ -554,8 +554,8 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->retinex.vart = (int)vart->getValue ();
|
||||
pp->retinex.limd = (int)limd->getValue ();
|
||||
pp->retinex.highl = (int)highl->getValue ();
|
||||
pp->retinex.highlig = (int)highlig->getValue ();
|
||||
pp->retinex.grbl = (int)grbl->getValue ();
|
||||
pp->retinex.baselog = baselog->getValue ();
|
||||
// pp->retinex.grbl = (int)grbl->getValue ();
|
||||
pp->retinex.cdcurve = cdshape->getCurve ();
|
||||
pp->retinex.lhcurve = lhshape->getCurve ();
|
||||
pp->retinex.cdHcurve = cdshapeH->getCurve ();
|
||||
@ -579,8 +579,8 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->retinex.vart = vart->getEditedState ();
|
||||
pedited->retinex.limd = limd->getEditedState ();
|
||||
pedited->retinex.highl = highl->getEditedState ();
|
||||
pedited->retinex.highlig = highlig->getEditedState ();
|
||||
pedited->retinex.grbl = grbl->getEditedState ();
|
||||
pedited->retinex.baselog = baselog->getEditedState ();
|
||||
// pedited->retinex.grbl = grbl->getEditedState ();
|
||||
pedited->retinex.cdcurve = !cdshape->isUnChanged ();
|
||||
pedited->retinex.cdHcurve = !cdshapeH->isUnChanged ();
|
||||
pedited->retinex.transmissionCurve = !transmissionShape->isUnChanged ();
|
||||
@ -626,9 +626,10 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
|
||||
|
||||
void Retinex::retinexMethodChanged()
|
||||
{
|
||||
// if (retinexMethod->get_active_row_number() == 4) {highl->show();highlig->show();grbl->show();}
|
||||
if(retinexMethod->get_active_row_number() == 3) {highl->show();highlig->hide();grbl->hide();}
|
||||
else {highl->hide();highlig->hide();grbl->hide();}
|
||||
|
||||
if(retinexMethod->get_active_row_number() == 3) highl->show();
|
||||
else highl->hide();
|
||||
|
||||
if (listener) {
|
||||
listener->panelChanged (EvretinexMethod, retinexMethod->get_active_text ());
|
||||
}
|
||||
@ -642,12 +643,15 @@ void Retinex::ColorSpaceUpdateUI ()
|
||||
if(retinexcolorspace->get_active_row_number() == 0) {
|
||||
curveEditorGD->show();
|
||||
curveEditorGDH->hide();
|
||||
baselog->show();
|
||||
} else if(retinexcolorspace->get_active_row_number() == 1) {
|
||||
curveEditorGD->hide();
|
||||
curveEditorGDH->show();
|
||||
baselog->show();
|
||||
} else if(retinexcolorspace->get_active_row_number() == 2) {
|
||||
curveEditorGD->hide();
|
||||
curveEditorGDH->show();
|
||||
baselog->hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -722,8 +726,8 @@ void Retinex::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
|
||||
vart->setDefault (defParams->retinex.vart);
|
||||
limd->setDefault (defParams->retinex.limd);
|
||||
highl->setDefault (defParams->retinex.highl);
|
||||
highlig->setDefault (defParams->retinex.highlig);
|
||||
grbl->setDefault (defParams->retinex.grbl);
|
||||
baselog->setDefault (defParams->retinex.baselog);
|
||||
// grbl->setDefault (defParams->retinex.grbl);
|
||||
gam->setDefault (defParams->retinex.gam);
|
||||
slope->setDefault (defParams->retinex.slope);
|
||||
|
||||
@ -736,8 +740,8 @@ void Retinex::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
|
||||
vart->setDefaultEditedState (pedited->retinex.vart ? Edited : UnEdited);
|
||||
limd->setDefaultEditedState (pedited->retinex.limd ? Edited : UnEdited);
|
||||
highl->setDefaultEditedState (pedited->retinex.highl ? Edited : UnEdited);
|
||||
highlig->setDefaultEditedState (pedited->retinex.highlig ? Edited : UnEdited);
|
||||
grbl->setDefaultEditedState (pedited->retinex.grbl ? Edited : UnEdited);
|
||||
baselog->setDefaultEditedState (pedited->retinex.baselog ? Edited : UnEdited);
|
||||
// grbl->setDefaultEditedState (pedited->retinex.grbl ? Edited : UnEdited);
|
||||
gam->setDefaultEditedState (pedited->retinex.gam ? Edited : UnEdited);
|
||||
slope->setDefaultEditedState (pedited->retinex.slope ? Edited : UnEdited);
|
||||
|
||||
@ -748,8 +752,8 @@ void Retinex::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
|
||||
vart->setDefaultEditedState (Irrelevant);
|
||||
limd->setDefaultEditedState (Irrelevant);
|
||||
highl->setDefaultEditedState (Irrelevant);
|
||||
highlig->setDefaultEditedState (Irrelevant);
|
||||
grbl->setDefaultEditedState (Irrelevant);
|
||||
baselog->setDefaultEditedState (Irrelevant);
|
||||
// grbl->setDefaultEditedState (Irrelevant);
|
||||
str->setDefaultEditedState (Irrelevant);
|
||||
scal->setDefaultEditedState (Irrelevant);
|
||||
gam->setDefaultEditedState (Irrelevant);
|
||||
@ -794,10 +798,10 @@ void Retinex::adjusterChanged (Adjuster* a, double newval)
|
||||
listener->panelChanged (EvLlimd, limd->getTextValue());
|
||||
} else if (a == highl) {
|
||||
listener->panelChanged (EvLhighl, highl->getTextValue());
|
||||
} else if (a == highlig) {
|
||||
listener->panelChanged (EvLhighlig, highlig->getTextValue());
|
||||
} else if (a == grbl) {
|
||||
listener->panelChanged (EvLgrbl, grbl->getTextValue());
|
||||
} else if (a == baselog) {
|
||||
listener->panelChanged (EvLbaselog, baselog->getTextValue());
|
||||
// } else if (a == grbl) {
|
||||
// listener->panelChanged (EvLgrbl, grbl->getTextValue());
|
||||
} else if (a == gam) {
|
||||
listener->panelChanged (EvLgam, gam->getTextValue());
|
||||
} else if (a == slope) {
|
||||
@ -858,8 +862,8 @@ void Retinex::trimValues (rtengine::procparams::ProcParams* pp)
|
||||
vart->trimValue(pp->retinex.vart);
|
||||
limd->trimValue(pp->retinex.limd);
|
||||
highl->trimValue(pp->retinex.highl);
|
||||
highlig->trimValue(pp->retinex.highlig);
|
||||
grbl->trimValue(pp->retinex.grbl);
|
||||
baselog->trimValue(pp->retinex.baselog);
|
||||
// grbl->trimValue(pp->retinex.grbl);
|
||||
gam->trimValue(pp->retinex.gam);
|
||||
slope->trimValue(pp->retinex.slope);
|
||||
|
||||
@ -930,8 +934,8 @@ void Retinex::setBatchMode (bool batchMode)
|
||||
vart->showEditedCB ();
|
||||
limd->showEditedCB ();
|
||||
highl->showEditedCB ();
|
||||
highlig->showEditedCB ();
|
||||
grbl->showEditedCB ();
|
||||
baselog->showEditedCB ();
|
||||
// grbl->showEditedCB ();
|
||||
curveEditorGD->setBatchMode (batchMode);
|
||||
curveEditorGDH->setBatchMode (batchMode);
|
||||
transmissionCurveEditorG->setBatchMode (batchMode);
|
||||
|
@ -30,7 +30,7 @@ protected:
|
||||
Adjuster* vart;
|
||||
Adjuster* limd;
|
||||
Adjuster* highl;
|
||||
Adjuster* highlig;
|
||||
Adjuster* baselog;
|
||||
Adjuster* grbl;
|
||||
Adjuster* gam;
|
||||
Adjuster* slope;
|
||||
|
Loading…
x
Reference in New Issue
Block a user