GUI improvment and re-introduce scale

This commit is contained in:
Desmis
2016-02-12 12:51:46 +01:00
parent b449e0827b
commit a21deef3de
10 changed files with 98 additions and 67 deletions

View File

@@ -671,6 +671,7 @@ HISTORY_MSG_437;Retinex - M - Method
HISTORY_MSG_438;Retinex - M - Equalizer HISTORY_MSG_438;Retinex - M - Equalizer
HISTORY_MSG_439;Retinex - Preview HISTORY_MSG_439;Retinex - Preview
HISTORY_MSG_440;Retinex - Gain transmission HISTORY_MSG_440;Retinex - Gain transmission
HISTORY_MSG_441;Retinex - Scale
HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT;Add
HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b> HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
HISTORY_SNAPSHOT;Snapshot HISTORY_SNAPSHOT;Snapshot
@@ -1665,10 +1666,11 @@ TP_RETINEX_CURVEEDITOR_LH;Strength=f(H)
TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method.
TP_RETINEX_CURVEEDITOR_MAP;L=f(L) TP_RETINEX_CURVEEDITOR_MAP;L=f(L)
TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts!
TP_RETINEX_EQUAL;Equalizer
TP_RETINEX_FREEGAMMA;Free gamma TP_RETINEX_FREEGAMMA;Free gamma
TP_RETINEX_GAIN;Gain TP_RETINEX_GAIN;Gain
TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram.
TP_RETINEX_GAINOFFS;Gain and Brightness (offset) TP_RETINEX_GAINOFFS;Gain and Offset (brightness)
TP_RETINEX_GAMMA;Gamma TP_RETINEX_GAMMA;Gamma
TP_RETINEX_GAMMA_FREE;Free TP_RETINEX_GAMMA_FREE;Free
TP_RETINEX_GAMMA_HIGH;High TP_RETINEX_GAMMA_HIGH;High
@@ -1686,6 +1688,7 @@ TP_RETINEX_HIGHLIGHT;Highlight threshold
TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool.
TP_RETINEX_HSLSPACE_LIN;HSL-Linear TP_RETINEX_HSLSPACE_LIN;HSL-Linear
TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic
TP_RETINEX_ITERF;Tone mapping
TP_RETINEX_ITER;Iterations (Tone-mapping) TP_RETINEX_ITER;Iterations (Tone-mapping)
TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time.
TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL;Retinex
@@ -1707,17 +1710,19 @@ TP_RETINEX_MLABEL_TOOLTIP;Should be near min=0 max=32768\nRestored image with no
TP_RETINEX_NEIGHBOR;Radius TP_RETINEX_NEIGHBOR;Radius
TP_RETINEX_NEUTRAL;Reset TP_RETINEX_NEUTRAL;Reset
TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values. TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values.
TP_RETINEX_OFFSET;Brightness (offset) TP_RETINEX_OFFSET;Offset (brightness)
TP_RETINEX_SCALES;Gaussian gradient TP_RETINEX_SCALES;Gaussian gradient
TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely. TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely.
TP_RETINEX_SETTINGS;Settings TP_RETINEX_SETTINGS;Settings
TP_RETINEX_SLOPE;Free gamma slope TP_RETINEX_SLOPE;Free gamma slope
TP_RETINEX_SKAL;Scale
TP_RETINEX_STRENGTH;Strength TP_RETINEX_STRENGTH;Strength
TP_RETINEX_THRESHOLD;Threshold TP_RETINEX_THRESHOLD;Threshold
TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss. TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss.
TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4 TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4
TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2
TP_RETINEX_TLABEL_TOOLTIP;Transmission map result.\nMin and Max are used by Variance.\nMean and Sigma.\nTm=Min TM=Max of transmission map. TP_RETINEX_TLABEL_TOOLTIP;Transmission map result.\nMin and Max are used by Variance.\nMean and Sigma.\nTm=Min TM=Max of transmission map.
TP_RETINEX_TRANF;Transmission
TP_RETINEX_TRANSMISSION;Transmission map TP_RETINEX_TRANSMISSION;Transmission map
TP_RETINEX_GAINTRANSMISSION;Gain transmission TP_RETINEX_GAINTRANSMISSION;Gain transmission
TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplfy or reduce transmission-map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate : gain TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplfy or reduce transmission-map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate : gain

View File

@@ -236,6 +236,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
bool higplus = false ; bool higplus = false ;
float elogt; float elogt;
float hl = deh.baselog; float hl = deh.baselog;
scal = deh.skal;
if(hl >= 2.71828f) { if(hl >= 2.71828f) {
elogt = 2.71828f + SQR(SQR(hl - 2.71828f)); elogt = 2.71828f + SQR(SQR(hl - 2.71828f));
@@ -292,11 +293,11 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
float grads; float grads;
float grad = 1.f; float grad = 1.f;
float sc = 3.f; float sc = scal;
if(gradient == 0) { if(gradient == 0) {
grad = 1.f; grad = 1.f;
sc = 3.f; sc = scal;//3.f
} else if(gradient == 1) { } else if(gradient == 1) {
grad = 0.25f * it + 0.75f; grad = 0.25f * it + 0.75f;
sc = -0.5f * it + 4.5f; sc = -0.5f * it + 4.5f;
@@ -336,6 +337,10 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
sc = 3.f; sc = 3.f;
} }
if(iter == 1) {
sc = scal;
}
float varx; float varx;
float limdx, ilimdx; float limdx, ilimdx;
@@ -396,7 +401,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e
} }
strengthx = ks * strength; strengthx = ks * strength;
//printf("scale=%d\n", scal);
retinex_scales( RetinexScales, scal, moderetinex, nei / grad, high ); retinex_scales( RetinexScales, scal, moderetinex, nei / grad, high );
float *src[H_L] ALIGNED16; float *src[H_L] ALIGNED16;

View File

@@ -467,6 +467,7 @@ enum ProcEvent {
EvRetinexmapcurve = 437, EvRetinexmapcurve = 437,
EvviewMethod = 438, EvviewMethod = 438,
EvRetinexgaintransmission = 439, EvRetinexgaintransmission = 439,
EvLskal = 440,
NUMOFEVENTS NUMOFEVENTS
}; };
} }

View File

@@ -158,7 +158,7 @@ void RetinexParams::setDefaults()
{ {
enabled = false; enabled = false;
str = 20; str = 20;
scal = 3; scal = 0;
iter = 1; iter = 1;
grad = 1; grad = 1;
grads = 1; grads = 1;
@@ -177,7 +177,7 @@ void RetinexParams::setDefaults()
radius = 40; radius = 40;
baselog = 2.71828; baselog = 2.71828;
// grbl = 50; skal = 3;
retinexMethod = "high"; retinexMethod = "high";
mapMethod = "none"; mapMethod = "none";
viewMethod = "none"; viewMethod = "none";
@@ -1536,9 +1536,9 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol
keyFile.set_double ("Retinex", "baselog", retinex.baselog); keyFile.set_double ("Retinex", "baselog", retinex.baselog);
} }
// if (!pedited || pedited->retinex.grbl) { if (!pedited || pedited->retinex.skal) {
// keyFile.set_integer ("Retinex", "grbl", retinex.grbl); keyFile.set_integer ("Retinex", "skal", retinex.skal);
// } }
if (!pedited || pedited->retinex.retinexMethod) { if (!pedited || pedited->retinex.retinexMethod) {
keyFile.set_string ("Retinex", "RetinexMethod", retinex.retinexMethod); keyFile.set_string ("Retinex", "RetinexMethod", retinex.retinexMethod);
@@ -4065,14 +4065,14 @@ int ProcParams::load (Glib::ustring fname, ParamsEdited* pedited)
} }
} }
/* if (keyFile.has_key ("Retinex", "grbl")) { if (keyFile.has_key ("Retinex", "skal")) {
retinex.grbl = keyFile.get_integer ("Retinex", "grbl"); retinex.skal = keyFile.get_integer ("Retinex", "skal");
if (pedited) { if (pedited) {
pedited->retinex.grbl = true; pedited->retinex.skal = true;
} }
} }
*/
if (keyFile.has_key ("Retinex", "CDCurve")) { if (keyFile.has_key ("Retinex", "CDCurve")) {
retinex.cdcurve = keyFile.get_double_list ("Retinex", "CDCurve"); retinex.cdcurve = keyFile.get_double_list ("Retinex", "CDCurve");
@@ -7568,7 +7568,7 @@ bool ProcParams::operator== (const ProcParams& other)
&& retinex.radius == other.retinex.radius && retinex.radius == other.retinex.radius
&& retinex.baselog == other.retinex.baselog && retinex.baselog == other.retinex.baselog
// && retinex.grbl == other.retinex.grbl && retinex.skal == other.retinex.skal
&& retinex.offs == other.retinex.offs && retinex.offs == other.retinex.offs
&& retinex.retinexMethod == other.retinex.retinexMethod && retinex.retinexMethod == other.retinex.retinexMethod
&& retinex.mapMethod == other.retinex.mapMethod && retinex.mapMethod == other.retinex.mapMethod

View File

@@ -310,7 +310,7 @@ public:
int limd; int limd;
int highl; int highl;
double baselog; double baselog;
// int grbl; int skal;
bool medianmap; bool medianmap;
RetinexParams (); RetinexParams ();
void setDefaults(); void setDefaults();

View File

@@ -466,7 +466,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
RETINEX, // EvmapMethod RETINEX, // EvmapMethod
DEMOSAIC, // EvRetinexmapcurve DEMOSAIC, // EvRetinexmapcurve
DEMOSAIC, // EvviewMethod DEMOSAIC, // EvviewMethod
RETINEX // EvRetinexgaintransmission RETINEX, // EvRetinexgaintransmission
RETINEX //EvLskal
}; };

View File

@@ -73,7 +73,7 @@ void ParamsEdited::set (bool v)
retinex.limd = v; retinex.limd = v;
retinex.highl = v; retinex.highl = v;
retinex.baselog = v; retinex.baselog = v;
// retinex.grbl = v; retinex.skal = v;
retinex.medianmap = v; retinex.medianmap = v;
retinex.transmissionCurve = v; retinex.transmissionCurve = v;
retinex.gaintransmissionCurve = v; retinex.gaintransmissionCurve = v;
@@ -565,7 +565,7 @@ void ParamsEdited::initFrom (const std::vector<rtengine::procparams::ProcParams>
retinex.limd = retinex.limd && p.retinex.limd == other.retinex.limd; retinex.limd = retinex.limd && p.retinex.limd == other.retinex.limd;
retinex.highl = retinex.highl && p.retinex.highl == other.retinex.highl; retinex.highl = retinex.highl && p.retinex.highl == other.retinex.highl;
retinex.baselog = retinex.baselog && p.retinex.baselog == other.retinex.baselog; retinex.baselog = retinex.baselog && p.retinex.baselog == other.retinex.baselog;
// retinex.grbl = retinex.grbl && p.retinex.grbl == other.retinex.grbl; retinex.skal = retinex.skal && p.retinex.skal == other.retinex.skal;
retinex.medianmap = retinex.medianmap && p.retinex.medianmap == other.retinex.medianmap; retinex.medianmap = retinex.medianmap && p.retinex.medianmap == other.retinex.medianmap;
retinex.highlights = retinex.highlights && p.retinex.highlights == other.retinex.highlights; retinex.highlights = retinex.highlights && p.retinex.highlights == other.retinex.highlights;
retinex.htonalwidth = retinex.htonalwidth && p.retinex.htonalwidth == other.retinex.htonalwidth; retinex.htonalwidth = retinex.htonalwidth && p.retinex.htonalwidth == other.retinex.htonalwidth;
@@ -1166,9 +1166,9 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten
toEdit.retinex.baselog = mods.retinex.baselog; toEdit.retinex.baselog = mods.retinex.baselog;
} }
// if (retinex.grbl) { if (retinex.skal) {
// toEdit.retinex.grbl = mods.retinex.grbl; toEdit.retinex.skal = mods.retinex.skal;
// } }
if (retinex.gain) { if (retinex.gain) {
toEdit.retinex.gain = dontforceSet && options.baBehav[ADDSET_RETI_GAIN] ? toEdit.retinex.gain + mods.retinex.gain : mods.retinex.gain; toEdit.retinex.gain = dontforceSet && options.baBehav[ADDSET_RETI_GAIN] ? toEdit.retinex.gain + mods.retinex.gain : mods.retinex.gain;

View File

@@ -78,7 +78,7 @@ public:
bool limd; bool limd;
bool highl; bool highl;
bool baselog; bool baselog;
// bool grbl; bool skal;
bool method; bool method;
bool transmissionCurve; bool transmissionCurve;
bool gaintransmissionCurve; bool gaintransmissionCurve;

View File

@@ -54,6 +54,9 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
dhbox->pack_start(*retinexcolorspace); dhbox->pack_start(*retinexcolorspace);
retinexVBox->pack_start(*dhbox); retinexVBox->pack_start(*dhbox);
Gtk::VBox *equalVBox = Gtk::manage (new Gtk::VBox());
equalFrame = Gtk::manage (new Gtk::Frame(M("TP_RETINEX_EQUAL")));
// Histogram equalizer Lab curve // Histogram equalizer Lab curve
curveEditorGD = new CurveEditorGroup (options.lastRetinexDir, M("TP_RETINEX_CONTEDIT_LAB")); curveEditorGD = new CurveEditorGroup (options.lastRetinexDir, M("TP_RETINEX_CONTEDIT_LAB"));
@@ -164,8 +167,8 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
offs = Gtk::manage (new Adjuster (M("TP_RETINEX_OFFSET"), -1000, 5000, 1, 0)); offs = Gtk::manage (new Adjuster (M("TP_RETINEX_OFFSET"), -1000, 5000, 1, 0));
// vart = Gtk::manage (new Adjuster (M("TP_RETINEX_VARIANCE"), 50, 500, 1, 125)); // 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)); limd = Gtk::manage (new Adjuster (M("TP_RETINEX_THRESHOLD"), 2, 100, 1, 8));
baselog = Gtk::manage (new Adjuster (M("TP_RETINEX_BASELOG"), 1.1, 100., 0.001, 2.718)); baselog = Gtk::manage (new Adjuster (M("TP_RETINEX_BASELOG"), 1., 10., 1., 3.));
// grbl = Gtk::manage (new Adjuster (M("TP_RETINEX_HIGHLIGHT3"), 1, 100, 1, 50)); skal = Gtk::manage (new Adjuster (M("TP_RETINEX_SKAL"), 1, 10, 1, 3));
gain->set_tooltip_markup (M("TP_RETINEX_GAIN_TOOLTIP")); gain->set_tooltip_markup (M("TP_RETINEX_GAIN_TOOLTIP"));
scal->set_tooltip_markup (M("TP_RETINEX_SCALES_TOOLTIP")); scal->set_tooltip_markup (M("TP_RETINEX_SCALES_TOOLTIP"));
iter->set_tooltip_markup (M("TP_RETINEX_ITER_TOOLTIP")); iter->set_tooltip_markup (M("TP_RETINEX_ITER_TOOLTIP"));
@@ -267,54 +270,68 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
settingsVBox->pack_start (*transLabels2); settingsVBox->pack_start (*transLabels2);
transLabels2->show (); transLabels2->show ();
settingsVBox->pack_start (*curveEditorGD, Gtk::PACK_SHRINK, 4); equalVBox->pack_start (*curveEditorGD, Gtk::PACK_SHRINK, 4);
curveEditorGD->show(); curveEditorGD->show();
settingsVBox->pack_start (*curveEditorGDH, Gtk::PACK_SHRINK, 4); equalVBox->pack_start (*curveEditorGDH, Gtk::PACK_SHRINK, 4);
curveEditorGDH->show(); curveEditorGDH->show();
settingsVBox->pack_start (*curveEditorGH, Gtk::PACK_SHRINK, 4); equalVBox->pack_start (*curveEditorGH, Gtk::PACK_SHRINK, 4);
curveEditorGH->show(); curveEditorGH->show();
gambox->pack_start(*gammaretinex); gambox->pack_start(*gammaretinex);
settingsVBox->pack_start(*gambox); equalVBox->pack_start(*gambox);
gammaretinex->show(); gammaretinex->show();
settingsVBox->pack_start (*gam); equalVBox->pack_start (*gam);
gam->show (); gam->show ();
settingsVBox->pack_start (*slope); equalVBox->pack_start (*slope);
slope->show (); slope->show ();
equalFrame->add(*equalVBox);
settingsVBox->pack_start (*equalFrame);
settingsVBox->pack_start (*iter);
Gtk::VBox *iterVBox = Gtk::manage (new Gtk::VBox());
iterFrame = Gtk::manage (new Gtk::Frame(M("TP_RETINEX_ITERF")));
iterVBox->pack_start (*iter);
iter->show (); iter->show ();
settingsVBox->pack_start (*scal); iterVBox->pack_start (*scal);
scal->show (); scal->show ();
settingsVBox->pack_start (*grad); iterVBox->pack_start (*grad);
grad->show (); grad->show ();
settingsVBox->pack_start (*grads); iterVBox->pack_start (*grads);
grads->show (); grads->show ();
settingsVBox->pack_start (*limd); iterFrame->add(*iterVBox);
limd->show (); settingsVBox->pack_start (*iterFrame);
settingsVBox->pack_start( *transmissionCurveEditorG, Gtk::PACK_SHRINK, 2); Gtk::VBox *tranVBox = Gtk::manage (new Gtk::VBox());
tranFrame = Gtk::manage (new Gtk::Frame(M("TP_RETINEX_TRANF")));
tranVBox->pack_start( *transmissionCurveEditorG, Gtk::PACK_SHRINK, 2);
transmissionCurveEditorG->show(); transmissionCurveEditorG->show();
settingsVBox->pack_start (*medianmap); tranVBox->pack_start (*skal);
skal->show ();
tranVBox->pack_start (*limd);
limd->show ();
tranVBox->pack_start (*medianmap);
medianmap->show (); medianmap->show ();
// settingsVBox->pack_start (*gain); tranFrame->add(*tranVBox);
// gain->show (); settingsVBox->pack_start (*tranFrame);
// settingsVBox->pack_start (*vart);
// vart->show ();
Gtk::VBox *gainBox = Gtk::manage (new Gtk::VBox()); Gtk::VBox *gainBox = Gtk::manage (new Gtk::VBox());
Gtk::HSeparator *separator = Gtk::manage (new Gtk::HSeparator()); Gtk::HSeparator *separator = Gtk::manage (new Gtk::HSeparator());
@@ -360,8 +377,6 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
// settingsVBox->pack_start (*baselog); // settingsVBox->pack_start (*baselog);
// baselog->show (); // baselog->show ();
// settingsVBox->pack_start (*grbl);
// grbl->show ();
// settingsVBox->pack_start (*Gtk::manage (new Gtk::HSeparator())); // settingsVBox->pack_start (*Gtk::manage (new Gtk::HSeparator()));
@@ -495,12 +510,12 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
s_tonalwidth->delay = 200; s_tonalwidth->delay = 200;
} }
/* grbl->setAdjusterListener (this); skal->setAdjusterListener (this);
if (grbl->delay < 200) { if (skal->delay < 200) {
grbl->delay = 200; skal->delay = 200;
} }
*/
pack_start (*retinexVBox); pack_start (*retinexVBox);
p1Frame->add(*p1VBox); p1Frame->add(*p1VBox);
pack_start (*p1Frame, Gtk::PACK_EXPAND_WIDGET, 4); pack_start (*p1Frame, Gtk::PACK_EXPAND_WIDGET, 4);
@@ -685,7 +700,7 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
limd->setEditedState (pedited->retinex.limd ? Edited : UnEdited); limd->setEditedState (pedited->retinex.limd ? Edited : UnEdited);
highl->setEditedState (pedited->retinex.highl ? Edited : UnEdited); highl->setEditedState (pedited->retinex.highl ? Edited : UnEdited);
baselog->setEditedState (pedited->retinex.baselog ? Edited : UnEdited); baselog->setEditedState (pedited->retinex.baselog ? Edited : UnEdited);
// grbl->setEditedState (pedited->retinex.grbl ? Edited : UnEdited); skal->setEditedState (pedited->retinex.skal ? Edited : UnEdited);
set_inconsistent (multiImage && !pedited->retinex.enabled); set_inconsistent (multiImage && !pedited->retinex.enabled);
medianmap->set_inconsistent (!pedited->retinex.medianmap); medianmap->set_inconsistent (!pedited->retinex.medianmap);
radius->setEditedState (pedited->retinex.radius ? Edited : UnEdited); radius->setEditedState (pedited->retinex.radius ? Edited : UnEdited);
@@ -745,7 +760,8 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
shadows->setValue (pp->retinex.shadows); shadows->setValue (pp->retinex.shadows);
s_tonalwidth->setValue (pp->retinex.stonalwidth); s_tonalwidth->setValue (pp->retinex.stonalwidth);
// grbl->setValue (pp->retinex.grbl); skal->setValue (pp->retinex.skal);
if(pp->retinex.iter == 1) { if(pp->retinex.iter == 1) {
grad->set_sensitive(false); grad->set_sensitive(false);
scal->set_sensitive(false); scal->set_sensitive(false);
@@ -864,7 +880,7 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
pp->retinex.limd = (int)limd->getValue (); pp->retinex.limd = (int)limd->getValue ();
pp->retinex.highl = (int)highl->getValue (); pp->retinex.highl = (int)highl->getValue ();
pp->retinex.baselog = baselog->getValue (); pp->retinex.baselog = baselog->getValue ();
// pp->retinex.grbl = (int)grbl->getValue (); pp->retinex.skal = (int)skal->getValue ();
pp->retinex.cdcurve = cdshape->getCurve (); pp->retinex.cdcurve = cdshape->getCurve ();
pp->retinex.lhcurve = lhshape->getCurve (); pp->retinex.lhcurve = lhshape->getCurve ();
pp->retinex.cdHcurve = cdshapeH->getCurve (); pp->retinex.cdHcurve = cdshapeH->getCurve ();
@@ -902,7 +918,7 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
pedited->retinex.limd = limd->getEditedState (); pedited->retinex.limd = limd->getEditedState ();
pedited->retinex.highl = highl->getEditedState (); pedited->retinex.highl = highl->getEditedState ();
pedited->retinex.baselog = baselog->getEditedState (); pedited->retinex.baselog = baselog->getEditedState ();
// pedited->retinex.grbl = grbl->getEditedState (); pedited->retinex.skal = skal->getEditedState ();
pedited->retinex.cdcurve = !cdshape->isUnChanged (); pedited->retinex.cdcurve = !cdshape->isUnChanged ();
pedited->retinex.cdHcurve = !cdshapeH->isUnChanged (); pedited->retinex.cdHcurve = !cdshapeH->isUnChanged ();
pedited->retinex.transmissionCurve = !transmissionShape->isUnChanged (); pedited->retinex.transmissionCurve = !transmissionShape->isUnChanged ();
@@ -1164,7 +1180,7 @@ void Retinex::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
limd->setDefault (defParams->retinex.limd); limd->setDefault (defParams->retinex.limd);
highl->setDefault (defParams->retinex.highl); highl->setDefault (defParams->retinex.highl);
baselog->setDefault (defParams->retinex.baselog); baselog->setDefault (defParams->retinex.baselog);
// grbl->setDefault (defParams->retinex.grbl); skal->setDefault (defParams->retinex.skal);
gam->setDefault (defParams->retinex.gam); gam->setDefault (defParams->retinex.gam);
slope->setDefault (defParams->retinex.slope); slope->setDefault (defParams->retinex.slope);
@@ -1187,7 +1203,7 @@ void Retinex::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
limd->setDefaultEditedState (pedited->retinex.limd ? Edited : UnEdited); limd->setDefaultEditedState (pedited->retinex.limd ? Edited : UnEdited);
highl->setDefaultEditedState (pedited->retinex.highl ? Edited : UnEdited); highl->setDefaultEditedState (pedited->retinex.highl ? Edited : UnEdited);
baselog->setDefaultEditedState (pedited->retinex.baselog ? Edited : UnEdited); baselog->setDefaultEditedState (pedited->retinex.baselog ? Edited : UnEdited);
// grbl->setDefaultEditedState (pedited->retinex.grbl ? Edited : UnEdited); skal->setDefaultEditedState (pedited->retinex.skal ? Edited : UnEdited);
gam->setDefaultEditedState (pedited->retinex.gam ? Edited : UnEdited); gam->setDefaultEditedState (pedited->retinex.gam ? Edited : UnEdited);
slope->setDefaultEditedState (pedited->retinex.slope ? Edited : UnEdited); slope->setDefaultEditedState (pedited->retinex.slope ? Edited : UnEdited);
@@ -1205,7 +1221,7 @@ void Retinex::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
limd->setDefaultEditedState (Irrelevant); limd->setDefaultEditedState (Irrelevant);
highl->setDefaultEditedState (Irrelevant); highl->setDefaultEditedState (Irrelevant);
baselog->setDefaultEditedState (Irrelevant); baselog->setDefaultEditedState (Irrelevant);
// grbl->setDefaultEditedState (Irrelevant); skal->setDefaultEditedState (Irrelevant);
str->setDefaultEditedState (Irrelevant); str->setDefaultEditedState (Irrelevant);
scal->setDefaultEditedState (Irrelevant); scal->setDefaultEditedState (Irrelevant);
iter->setDefaultEditedState (Irrelevant); iter->setDefaultEditedState (Irrelevant);
@@ -1278,8 +1294,8 @@ void Retinex::adjusterChanged (Adjuster* a, double newval)
listener->panelChanged (EvLhighl, highl->getTextValue()); listener->panelChanged (EvLhighl, highl->getTextValue());
} else if (a == baselog) { } else if (a == baselog) {
listener->panelChanged (EvLbaselog, baselog->getTextValue()); listener->panelChanged (EvLbaselog, baselog->getTextValue());
// } else if (a == grbl) { } else if (a == skal) {
// listener->panelChanged (EvLgrbl, grbl->getTextValue()); listener->panelChanged (EvLskal, skal->getTextValue());
} else if (a == gam) { } else if (a == gam) {
listener->panelChanged (EvLgam, gam->getTextValue()); listener->panelChanged (EvLgam, gam->getTextValue());
} else if (a == slope) { } else if (a == slope) {
@@ -1446,7 +1462,7 @@ void Retinex::setBatchMode (bool batchMode)
shadows->showEditedCB (); shadows->showEditedCB ();
s_tonalwidth->showEditedCB (); s_tonalwidth->showEditedCB ();
// grbl->showEditedCB (); skal->showEditedCB ();
curveEditorGD->setBatchMode (batchMode); curveEditorGD->setBatchMode (batchMode);
curveEditorGDH->setBatchMode (batchMode); curveEditorGDH->setBatchMode (batchMode);
transmissionCurveEditorG->setBatchMode (batchMode); transmissionCurveEditorG->setBatchMode (batchMode);

View File

@@ -35,7 +35,7 @@ protected:
Adjuster* limd; Adjuster* limd;
Adjuster* highl; Adjuster* highl;
Adjuster* baselog; Adjuster* baselog;
Adjuster* grbl; Adjuster* skal;
Adjuster* gam; Adjuster* gam;
Adjuster* slope; Adjuster* slope;
Adjuster* highlights; Adjuster* highlights;
@@ -77,6 +77,9 @@ protected:
Gtk::Label* transLabels; Gtk::Label* transLabels;
Gtk::Label* transLabels2; Gtk::Label* transLabels2;
Gtk::Frame *gainFrame; Gtk::Frame *gainFrame;
Gtk::Frame *tranFrame;
Gtk::Frame *iterFrame;
Gtk::Frame *equalFrame;
DiagonalCurveEditor* cdshape; DiagonalCurveEditor* cdshape;
DiagonalCurveEditor* cdshapeH; DiagonalCurveEditor* cdshapeH;