Retinex - Choice complexity Standard - Advanced (#5871)
* Enabled standard advanced for Retinex * Added forgotten reset button
This commit is contained in:
parent
2a31ed9dec
commit
2c3881f3a6
@ -1216,6 +1216,7 @@ HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
|
|||||||
HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
|
HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
|
||||||
HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
|
HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
|
||||||
HISTORY_MSG_COMPLEX;Wavelet complexity
|
HISTORY_MSG_COMPLEX;Wavelet complexity
|
||||||
|
HISTORY_MSG_COMPLEXRETI;Retinex complexity
|
||||||
HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
|
HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
|
||||||
HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
|
HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
|
||||||
HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only
|
HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only
|
||||||
|
@ -459,6 +459,7 @@ RetinexParams::RetinexParams() :
|
|||||||
shadows(0),
|
shadows(0),
|
||||||
stonalwidth(80),
|
stonalwidth(80),
|
||||||
radius(40),
|
radius(40),
|
||||||
|
complexmethod("normal"),
|
||||||
retinexMethod("high"),
|
retinexMethod("high"),
|
||||||
retinexcolorspace("Lab"),
|
retinexcolorspace("Lab"),
|
||||||
gammaretinex("none"),
|
gammaretinex("none"),
|
||||||
@ -496,6 +497,7 @@ bool RetinexParams::operator ==(const RetinexParams& other) const
|
|||||||
&& shadows == other.shadows
|
&& shadows == other.shadows
|
||||||
&& stonalwidth == other.stonalwidth
|
&& stonalwidth == other.stonalwidth
|
||||||
&& radius == other.radius
|
&& radius == other.radius
|
||||||
|
&& complexmethod == other.complexmethod
|
||||||
&& retinexMethod == other.retinexMethod
|
&& retinexMethod == other.retinexMethod
|
||||||
&& retinexcolorspace == other.retinexcolorspace
|
&& retinexcolorspace == other.retinexcolorspace
|
||||||
&& gammaretinex == other.gammaretinex
|
&& gammaretinex == other.gammaretinex
|
||||||
@ -5027,6 +5029,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
|||||||
saveToKeyfile(!pedited || pedited->retinex.limd, "Retinex", "Limd", retinex.limd, keyFile);
|
saveToKeyfile(!pedited || pedited->retinex.limd, "Retinex", "Limd", retinex.limd, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->retinex.highl, "Retinex", "highl", retinex.highl, keyFile);
|
saveToKeyfile(!pedited || pedited->retinex.highl, "Retinex", "highl", retinex.highl, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->retinex.skal, "Retinex", "skal", retinex.skal, keyFile);
|
saveToKeyfile(!pedited || pedited->retinex.skal, "Retinex", "skal", retinex.skal, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->retinex.complexmethod, "Retinex", "complexMethod", retinex.complexmethod, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->retinex.retinexMethod, "Retinex", "RetinexMethod", retinex.retinexMethod, keyFile);
|
saveToKeyfile(!pedited || pedited->retinex.retinexMethod, "Retinex", "RetinexMethod", retinex.retinexMethod, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->retinex.mapMethod, "Retinex", "mapMethod", retinex.mapMethod, keyFile);
|
saveToKeyfile(!pedited || pedited->retinex.mapMethod, "Retinex", "mapMethod", retinex.mapMethod, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->retinex.viewMethod, "Retinex", "viewMethod", retinex.viewMethod, keyFile);
|
saveToKeyfile(!pedited || pedited->retinex.viewMethod, "Retinex", "viewMethod", retinex.viewMethod, keyFile);
|
||||||
@ -6497,6 +6500,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
|
|
||||||
if (keyFile.has_group("Retinex")) {
|
if (keyFile.has_group("Retinex")) {
|
||||||
assignFromKeyfile(keyFile, "Retinex", "Median", pedited, retinex.medianmap, pedited->retinex.medianmap);
|
assignFromKeyfile(keyFile, "Retinex", "Median", pedited, retinex.medianmap, pedited->retinex.medianmap);
|
||||||
|
assignFromKeyfile(keyFile, "Retinex", "complexMethod", pedited, retinex.complexmethod, pedited->retinex.complexmethod);
|
||||||
assignFromKeyfile(keyFile, "Retinex", "RetinexMethod", pedited, retinex.retinexMethod, pedited->retinex.retinexMethod);
|
assignFromKeyfile(keyFile, "Retinex", "RetinexMethod", pedited, retinex.retinexMethod, pedited->retinex.retinexMethod);
|
||||||
assignFromKeyfile(keyFile, "Retinex", "mapMethod", pedited, retinex.mapMethod, pedited->retinex.mapMethod);
|
assignFromKeyfile(keyFile, "Retinex", "mapMethod", pedited, retinex.mapMethod, pedited->retinex.mapMethod);
|
||||||
assignFromKeyfile(keyFile, "Retinex", "viewMethod", pedited, retinex.viewMethod, pedited->retinex.viewMethod);
|
assignFromKeyfile(keyFile, "Retinex", "viewMethod", pedited, retinex.viewMethod, pedited->retinex.viewMethod);
|
||||||
|
@ -336,6 +336,7 @@ struct RetinexParams {
|
|||||||
int stonalwidth;
|
int stonalwidth;
|
||||||
int radius;
|
int radius;
|
||||||
|
|
||||||
|
Glib::ustring complexmethod;
|
||||||
Glib::ustring retinexMethod;
|
Glib::ustring retinexMethod;
|
||||||
Glib::ustring retinexcolorspace;
|
Glib::ustring retinexcolorspace;
|
||||||
Glib::ustring gammaretinex;
|
Glib::ustring gammaretinex;
|
||||||
|
@ -60,6 +60,7 @@ void ParamsEdited::set(bool v)
|
|||||||
retinex.mapcurve = v;
|
retinex.mapcurve = v;
|
||||||
retinex.cdHcurve = v;
|
retinex.cdHcurve = v;
|
||||||
retinex.lhcurve = v;
|
retinex.lhcurve = v;
|
||||||
|
retinex.complexmethod = v;
|
||||||
retinex.retinexMethod = v;
|
retinex.retinexMethod = v;
|
||||||
retinex.mapMethod = v;
|
retinex.mapMethod = v;
|
||||||
retinex.viewMethod = v;
|
retinex.viewMethod = v;
|
||||||
@ -711,6 +712,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
|||||||
retinex.lhcurve = retinex.lhcurve && p.retinex.lhcurve == other.retinex.lhcurve;
|
retinex.lhcurve = retinex.lhcurve && p.retinex.lhcurve == other.retinex.lhcurve;
|
||||||
retinex.transmissionCurve = retinex.transmissionCurve && p.retinex.transmissionCurve == other.retinex.transmissionCurve;
|
retinex.transmissionCurve = retinex.transmissionCurve && p.retinex.transmissionCurve == other.retinex.transmissionCurve;
|
||||||
retinex.gaintransmissionCurve = retinex.gaintransmissionCurve && p.retinex.gaintransmissionCurve == other.retinex.gaintransmissionCurve;
|
retinex.gaintransmissionCurve = retinex.gaintransmissionCurve && p.retinex.gaintransmissionCurve == other.retinex.gaintransmissionCurve;
|
||||||
|
retinex.complexmethod = retinex.complexmethod && p.retinex.complexmethod == other.retinex.complexmethod;
|
||||||
retinex.retinexMethod = retinex.retinexMethod && p.retinex.retinexMethod == other.retinex.retinexMethod;
|
retinex.retinexMethod = retinex.retinexMethod && p.retinex.retinexMethod == other.retinex.retinexMethod;
|
||||||
retinex.mapMethod = retinex.mapMethod && p.retinex.mapMethod == other.retinex.mapMethod;
|
retinex.mapMethod = retinex.mapMethod && p.retinex.mapMethod == other.retinex.mapMethod;
|
||||||
retinex.viewMethod = retinex.viewMethod && p.retinex.viewMethod == other.retinex.viewMethod;
|
retinex.viewMethod = retinex.viewMethod && p.retinex.viewMethod == other.retinex.viewMethod;
|
||||||
@ -1917,6 +1919,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
|||||||
toEdit.retinex.gaintransmissionCurve = mods.retinex.gaintransmissionCurve;
|
toEdit.retinex.gaintransmissionCurve = mods.retinex.gaintransmissionCurve;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (retinex.complexmethod) {
|
||||||
|
toEdit.retinex.complexmethod = mods.retinex.complexmethod;
|
||||||
|
}
|
||||||
|
|
||||||
if (retinex.retinexMethod) {
|
if (retinex.retinexMethod) {
|
||||||
toEdit.retinex.retinexMethod = mods.retinex.retinexMethod;
|
toEdit.retinex.retinexMethod = mods.retinex.retinexMethod;
|
||||||
}
|
}
|
||||||
|
@ -73,6 +73,7 @@ struct RetinexParamsEdited {
|
|||||||
bool slope;
|
bool slope;
|
||||||
bool neigh;
|
bool neigh;
|
||||||
bool offs;
|
bool offs;
|
||||||
|
bool complexmethod;
|
||||||
bool retinexMethod;
|
bool retinexMethod;
|
||||||
bool mapMethod;
|
bool mapMethod;
|
||||||
bool viewMethod;
|
bool viewMethod;
|
||||||
|
124
rtgui/retinex.cc
124
rtgui/retinex.cc
@ -9,6 +9,7 @@
|
|||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "../rtengine/color.h"
|
#include "../rtengine/color.h"
|
||||||
|
#include "eventmapper.h"
|
||||||
|
|
||||||
using namespace rtengine;
|
using namespace rtengine;
|
||||||
using namespace rtengine::procparams;
|
using namespace rtengine::procparams;
|
||||||
@ -25,13 +26,26 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL")
|
|||||||
nextsigma = 0.;
|
nextsigma = 0.;
|
||||||
nextminT = 0.;
|
nextminT = 0.;
|
||||||
nextmaxT = 0.;
|
nextmaxT = 0.;
|
||||||
|
auto m = ProcEventMapper::getInstance();
|
||||||
|
EvReticomplex = m->newEvent(DEMOSAIC, "HISTORY_MSG_COMPLEXRETI");
|
||||||
|
|
||||||
|
|
||||||
|
const RetinexParams default_params;
|
||||||
|
|
||||||
|
|
||||||
// MAIN Expander ==================================================================
|
// MAIN Expander ==================================================================
|
||||||
|
|
||||||
|
complexmethod = Gtk::manage (new MyComboBoxText ());
|
||||||
|
|
||||||
|
complexmethod->append(M("TP_WAVELET_COMPNORMAL"));
|
||||||
|
complexmethod->append(M("TP_WAVELET_COMPEXPERT"));
|
||||||
|
complexmethodconn = complexmethod->signal_changed().connect(sigc::mem_fun(*this, &Retinex::complexmethodChanged));
|
||||||
|
complexmethod->set_tooltip_text(M("TP_WAVELET_COMPLEX_TOOLTIP"));
|
||||||
|
Gtk::HBox* const complexHBox = Gtk::manage(new Gtk::HBox());
|
||||||
|
Gtk::Label* const complexLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_COMPLEXLAB") + ":"));
|
||||||
|
complexHBox->pack_start(*complexLabel, Gtk::PACK_SHRINK, 4);
|
||||||
|
complexHBox->pack_start(*complexmethod);
|
||||||
|
pack_start(*complexHBox);
|
||||||
|
|
||||||
|
|
||||||
Gtk::Grid *retinexGrid = Gtk::manage ( new Gtk::Grid());
|
Gtk::Grid *retinexGrid = Gtk::manage ( new Gtk::Grid());
|
||||||
@ -116,7 +130,8 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL")
|
|||||||
// MAP (MASK) Frame ---------------------------------------------------------------
|
// MAP (MASK) Frame ---------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
Gtk::Frame *maskFrame = Gtk::manage (new Gtk::Frame (M ("TP_RETINEX_LABEL_MASK")) );
|
// Gtk::Frame *maskFrame = Gtk::manage (new Gtk::Frame (M ("TP_RETINEX_LABEL_MASK")) );
|
||||||
|
maskFrame = Gtk::manage (new Gtk::Frame (M ("TP_RETINEX_LABEL_MASK")) );
|
||||||
setExpandAlignProperties (maskFrame, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
setExpandAlignProperties (maskFrame, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||||
|
|
||||||
Gtk::Grid *maskGrid = Gtk::manage ( new Gtk::Grid());
|
Gtk::Grid *maskGrid = Gtk::manage ( new Gtk::Grid());
|
||||||
@ -384,7 +399,6 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL")
|
|||||||
Gtk::Grid *tranGrid = Gtk::manage (new Gtk::Grid());
|
Gtk::Grid *tranGrid = Gtk::manage (new Gtk::Grid());
|
||||||
setExpandAlignProperties (tranGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
setExpandAlignProperties (tranGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||||
|
|
||||||
const RetinexParams default_params;
|
|
||||||
|
|
||||||
// Transmission map curve
|
// Transmission map curve
|
||||||
transmissionCurveEditorG = new CurveEditorGroup (options.lastRetinexDir, M ("TP_RETINEX_TRANSMISSION"));
|
transmissionCurveEditorG = new CurveEditorGroup (options.lastRetinexDir, M ("TP_RETINEX_TRANSMISSION"));
|
||||||
@ -628,12 +642,14 @@ void Retinex::neutral_pressed ()
|
|||||||
limd->resetValue (false);
|
limd->resetValue (false);
|
||||||
highl->resetValue (false);
|
highl->resetValue (false);
|
||||||
gam->resetValue (false);
|
gam->resetValue (false);
|
||||||
|
skal->resetValue (false);
|
||||||
slope->resetValue (false);
|
slope->resetValue (false);
|
||||||
highlights->resetValue (false);
|
highlights->resetValue (false);
|
||||||
h_tonalwidth->resetValue (false);
|
h_tonalwidth->resetValue (false);
|
||||||
shadows->resetValue (false);
|
shadows->resetValue (false);
|
||||||
s_tonalwidth->resetValue (false);
|
s_tonalwidth->resetValue (false);
|
||||||
radius->resetValue (false);
|
radius->resetValue (false);
|
||||||
|
medianmap->set_active (false);
|
||||||
mapMethod->set_active (0);
|
mapMethod->set_active (0);
|
||||||
viewMethod->set_active (0);
|
viewMethod->set_active (0);
|
||||||
retinexMethod->set_active (2);
|
retinexMethod->set_active (2);
|
||||||
@ -742,7 +758,53 @@ void Retinex::updateTrans ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Retinex::convertParamToNormal()
|
||||||
|
{
|
||||||
|
const RetinexParams def_params;
|
||||||
|
disableListener();
|
||||||
|
iter->setValue(def_params.iter);
|
||||||
|
viewMethod->set_active(0);
|
||||||
|
mapMethod->set_active(0);
|
||||||
|
cdshape->reset();
|
||||||
|
cdshapeH->reset();
|
||||||
|
lhshape->reset();
|
||||||
|
transmissionShape->reset();
|
||||||
|
medianmap->set_active(def_params.medianmap);
|
||||||
|
enableListener();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Retinex::updateGUIToMode(int mode)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(mode ==0) {
|
||||||
|
iterFrame->hide();
|
||||||
|
maskFrame->hide();
|
||||||
|
equalFrame->hide();
|
||||||
|
viewMethod->hide();
|
||||||
|
mapMethod->hide();
|
||||||
|
transmissionCurveEditorG->hide();
|
||||||
|
medianmap->hide();
|
||||||
|
} else {
|
||||||
|
iterFrame->show();
|
||||||
|
maskFrame->show();
|
||||||
|
equalFrame->show();
|
||||||
|
viewMethod->show();
|
||||||
|
transmissionCurveEditorG->show();
|
||||||
|
medianmap->show();
|
||||||
|
mapMethod->show();
|
||||||
|
if (iter->getIntValue() > 1) {
|
||||||
|
grad->set_sensitive (true);
|
||||||
|
scal->set_sensitive (true);
|
||||||
|
grads->set_sensitive (true);
|
||||||
|
} else {
|
||||||
|
grad->set_sensitive (false);
|
||||||
|
scal->set_sensitive (false);
|
||||||
|
grads->set_sensitive (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||||
{
|
{
|
||||||
@ -752,6 +814,7 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
gammaretinexConn.block (true);
|
gammaretinexConn.block (true);
|
||||||
mapMethodConn.block (true);
|
mapMethodConn.block (true);
|
||||||
viewMethodConn.block (true);
|
viewMethodConn.block (true);
|
||||||
|
complexmethodconn.block (true);
|
||||||
|
|
||||||
|
|
||||||
if (pedited) {
|
if (pedited) {
|
||||||
@ -775,6 +838,9 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
shadows->setEditedState (pedited->retinex.shadows ? Edited : UnEdited);
|
shadows->setEditedState (pedited->retinex.shadows ? Edited : UnEdited);
|
||||||
s_tonalwidth->setEditedState (pedited->retinex.stonalwidth ? Edited : UnEdited);
|
s_tonalwidth->setEditedState (pedited->retinex.stonalwidth ? Edited : UnEdited);
|
||||||
|
|
||||||
|
if (!pedited->retinex.complexmethod) {
|
||||||
|
complexmethod->set_active_text (M ("GENERAL_UNCHANGED"));
|
||||||
|
}
|
||||||
|
|
||||||
if (!pedited->retinex.retinexMethod) {
|
if (!pedited->retinex.retinexMethod) {
|
||||||
retinexMethod->set_active_text (M ("GENERAL_UNCHANGED"));
|
retinexMethod->set_active_text (M ("GENERAL_UNCHANGED"));
|
||||||
@ -844,6 +910,13 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
medianmapConn.block (false);
|
medianmapConn.block (false);
|
||||||
lastmedianmap = pp->retinex.medianmap;
|
lastmedianmap = pp->retinex.medianmap;
|
||||||
|
|
||||||
|
if (pp->retinex.complexmethod == "normal") {
|
||||||
|
complexmethod->set_active(0);
|
||||||
|
} else if (pp->retinex.complexmethod == "expert") {
|
||||||
|
complexmethod->set_active(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (pp->retinex.retinexMethod == "low") {
|
if (pp->retinex.retinexMethod == "low") {
|
||||||
retinexMethod->set_active (0);
|
retinexMethod->set_active (0);
|
||||||
} else if (pp->retinex.retinexMethod == "uni") {
|
} else if (pp->retinex.retinexMethod == "uni") {
|
||||||
@ -906,6 +979,7 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
mapMethodChanged ();
|
mapMethodChanged ();
|
||||||
viewMethodChanged ();
|
viewMethodChanged ();
|
||||||
|
|
||||||
|
|
||||||
medianmapConn.block (true);
|
medianmapConn.block (true);
|
||||||
medianmapChanged ();
|
medianmapChanged ();
|
||||||
medianmapConn.block (false);
|
medianmapConn.block (false);
|
||||||
@ -923,8 +997,18 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
transmissionShape->setCurve (pp->retinex.transmissionCurve);
|
transmissionShape->setCurve (pp->retinex.transmissionCurve);
|
||||||
gaintransmissionShape->setCurve (pp->retinex.gaintransmissionCurve);
|
gaintransmissionShape->setCurve (pp->retinex.gaintransmissionCurve);
|
||||||
|
|
||||||
|
complexmethodconn.block (false);
|
||||||
|
|
||||||
enableListener ();
|
enableListener ();
|
||||||
|
|
||||||
|
if (complexmethod->get_active_row_number() == 0) {
|
||||||
|
updateGUIToMode(0);
|
||||||
|
// convertParamToNormal();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
updateGUIToMode(1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -961,6 +1045,7 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pp->retinex.stonalwidth = (int)s_tonalwidth->getValue ();
|
pp->retinex.stonalwidth = (int)s_tonalwidth->getValue ();
|
||||||
|
|
||||||
if (pedited) {
|
if (pedited) {
|
||||||
|
pedited->retinex.complexmethod = complexmethod->get_active_text() != M ("GENERAL_UNCHANGED");
|
||||||
pedited->retinex.retinexMethod = retinexMethod->get_active_text() != M ("GENERAL_UNCHANGED");
|
pedited->retinex.retinexMethod = retinexMethod->get_active_text() != M ("GENERAL_UNCHANGED");
|
||||||
pedited->retinex.retinexcolorspace = retinexcolorspace->get_active_text() != M ("GENERAL_UNCHANGED");
|
pedited->retinex.retinexcolorspace = retinexcolorspace->get_active_text() != M ("GENERAL_UNCHANGED");
|
||||||
pedited->retinex.gammaretinex = gammaretinex->get_active_text() != M ("GENERAL_UNCHANGED");
|
pedited->retinex.gammaretinex = gammaretinex->get_active_text() != M ("GENERAL_UNCHANGED");
|
||||||
@ -998,6 +1083,12 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (complexmethod->get_active_row_number() == 0) {
|
||||||
|
pp->retinex.complexmethod = "normal";
|
||||||
|
} else if (complexmethod->get_active_row_number() == 1) {
|
||||||
|
pp->retinex.complexmethod = "expert";
|
||||||
|
}
|
||||||
|
|
||||||
if (retinexMethod->get_active_row_number() == 0) {
|
if (retinexMethod->get_active_row_number() == 0) {
|
||||||
pp->retinex.retinexMethod = "low";
|
pp->retinex.retinexMethod = "low";
|
||||||
} else if (retinexMethod->get_active_row_number() == 1) {
|
} else if (retinexMethod->get_active_row_number() == 1) {
|
||||||
@ -1056,6 +1147,27 @@ void Retinex::write (ProcParams* pp, ParamsEdited* pedited)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Retinex::complexmethodChanged()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!batchMode) {
|
||||||
|
if (complexmethod->get_active_row_number() == 0) {
|
||||||
|
updateGUIToMode(0);
|
||||||
|
convertParamToNormal();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
updateGUIToMode(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(EvReticomplex, complexmethod->get_active_text());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Retinex::retinexMethodChanged()
|
void Retinex::retinexMethodChanged()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -1138,8 +1250,11 @@ void Retinex::viewMethodChanged()
|
|||||||
limd->show();
|
limd->show();
|
||||||
transmissionCurveEditorG->show();
|
transmissionCurveEditorG->show();
|
||||||
medianmap->show();
|
medianmap->show();
|
||||||
|
if (complexmethod->get_active_row_number() == 0) {
|
||||||
iterFrame->show();
|
iterFrame->hide();
|
||||||
|
} else {
|
||||||
|
iterFrame->show();
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
iter->show();
|
iter->show();
|
||||||
scal->show();
|
scal->show();
|
||||||
@ -1522,6 +1637,7 @@ void Retinex::setBatchMode (bool batchMode)
|
|||||||
h_tonalwidth->showEditedCB ();
|
h_tonalwidth->showEditedCB ();
|
||||||
shadows->showEditedCB ();
|
shadows->showEditedCB ();
|
||||||
s_tonalwidth->showEditedCB ();
|
s_tonalwidth->showEditedCB ();
|
||||||
|
// complexmethod->append(M("GENERAL_UNCHANGED"));
|
||||||
|
|
||||||
skal->showEditedCB ();
|
skal->showEditedCB ();
|
||||||
curveEditorGD->setBatchMode (batchMode);
|
curveEditorGD->setBatchMode (batchMode);
|
||||||
|
@ -28,6 +28,7 @@ class Retinex final :
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
IdleRegister idle_register;
|
IdleRegister idle_register;
|
||||||
|
rtengine::ProcEvent EvReticomplex;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CurveEditorGroup* curveEditorGD;
|
CurveEditorGroup* curveEditorGD;
|
||||||
@ -72,6 +73,9 @@ protected:
|
|||||||
MyComboBoxText* mapMethod;
|
MyComboBoxText* mapMethod;
|
||||||
MyComboBoxText* viewMethod;
|
MyComboBoxText* viewMethod;
|
||||||
Gtk::CheckButton* medianmap;
|
Gtk::CheckButton* medianmap;
|
||||||
|
MyComboBoxText* complexmethod;
|
||||||
|
sigc::connection complexmethodconn;
|
||||||
|
|
||||||
double nextmin;
|
double nextmin;
|
||||||
double nextmax;
|
double nextmax;
|
||||||
double nextminiT;
|
double nextminiT;
|
||||||
@ -87,6 +91,7 @@ protected:
|
|||||||
Gtk::Frame *gainFrame;
|
Gtk::Frame *gainFrame;
|
||||||
Gtk::Frame *tranFrame;
|
Gtk::Frame *tranFrame;
|
||||||
Gtk::Frame *iterFrame;
|
Gtk::Frame *iterFrame;
|
||||||
|
Gtk::Frame *maskFrame;
|
||||||
Gtk::Frame *equalFrame;
|
Gtk::Frame *equalFrame;
|
||||||
|
|
||||||
DiagonalCurveEditor* cdshape;
|
DiagonalCurveEditor* cdshape;
|
||||||
@ -148,4 +153,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void foldAllButMe(GdkEventButton* event, MyExpander *expander);
|
void foldAllButMe(GdkEventButton* event, MyExpander *expander);
|
||||||
|
void convertParamToNormal();
|
||||||
|
void updateGUIToMode(int mode);
|
||||||
|
void complexmethodChanged();
|
||||||
};
|
};
|
||||||
|
@ -2920,8 +2920,8 @@ void Wavelet::convertParamToNormal()
|
|||||||
|
|
||||||
//final touchup
|
//final touchup
|
||||||
BAmethod->set_active(0);
|
BAmethod->set_active(0);
|
||||||
enableListener();
|
|
||||||
sigmafin->setValue(def_params.sigmafin);
|
sigmafin->setValue(def_params.sigmafin);
|
||||||
|
enableListener();
|
||||||
|
|
||||||
// Update GUI based on converted widget parameters:
|
// Update GUI based on converted widget parameters:
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user