GUI improvment and re-introduce scale
This commit is contained in:
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -467,6 +467,7 @@ enum ProcEvent {
|
|||||||
EvRetinexmapcurve = 437,
|
EvRetinexmapcurve = 437,
|
||||||
EvviewMethod = 438,
|
EvviewMethod = 438,
|
||||||
EvRetinexgaintransmission = 439,
|
EvRetinexgaintransmission = 439,
|
||||||
|
EvLskal = 440,
|
||||||
NUMOFEVENTS
|
NUMOFEVENTS
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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();
|
||||||
|
@@ -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
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user