Improve and simplify GUI Retinex

This commit is contained in:
Desmis 2019-12-11 09:23:57 +01:00
parent 0a024f432e
commit 534cfc15fc
3 changed files with 44 additions and 25 deletions

View File

@ -2270,6 +2270,7 @@ TP_LOCALLAB_EXPGRAD;Graduated Filter
TP_LOCALLAB_EXPMETHOD_TOOLTIP;Standard : use an algorithm similar as main Exposure but in L*a*b* and taking account of deltaE.\n\nLaplacian & PDE : use another algorithm also with deltaE and with Poisson equation to solve Laplacian in Fourier space.\nPDE IPOL, PDE Fattal and Standard can be combined.\nFFTW Fourier Transform is optimized in size to reduce processing time.\nPDE reduce artifacts and noise. TP_LOCALLAB_EXPMETHOD_TOOLTIP;Standard : use an algorithm similar as main Exposure but in L*a*b* and taking account of deltaE.\n\nLaplacian & PDE : use another algorithm also with deltaE and with Poisson equation to solve Laplacian in Fourier space.\nPDE IPOL, PDE Fattal and Standard can be combined.\nFFTW Fourier Transform is optimized in size to reduce processing time.\nPDE reduce artifacts and noise.
TP_LOCALLAB_EXPOSE;Exposure TP_LOCALLAB_EXPOSE;Exposure
TP_LOCALLAB_EXPOSURE_TOOLTIP;In some cases (strong shadows ..) you can use the module "Shadows Highlights" TP_LOCALLAB_EXPOSURE_TOOLTIP;In some cases (strong shadows ..) you can use the module "Shadows Highlights"
TP_LOCALLAB_EXPRETITOOLS;Advanced Retinex Tools
TP_LOCALLAB_EXPTOOL;Tools exposure TP_LOCALLAB_EXPTOOL;Tools exposure
TP_LOCALLAB_EXPTRC;Tone Response Curve - TRC TP_LOCALLAB_EXPTRC;Tone Response Curve - TRC
TP_LOCALLAB_FATAMOUNT;Amount TP_LOCALLAB_FATAMOUNT;Amount

View File

@ -225,6 +225,7 @@ Locallab::Locallab():
expblur(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), expblur(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))),
exptonemap(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), exptonemap(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))),
expreti(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), expreti(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))),
expretitools(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_EXPRETITOOLS")))),
expsharp(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), expsharp(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))),
expcontrast(Gtk::manage(new MyExpander(true, M("TP_LOCALLAB_LOC_CONTRAST")))), expcontrast(Gtk::manage(new MyExpander(true, M("TP_LOCALLAB_LOC_CONTRAST")))),
expcbdl(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), expcbdl(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))),
@ -2443,6 +2444,10 @@ pe(nullptr)
expmaskreti->set_tooltip_markup(M("TP_LOCALLAB_MASK_TOOLTIP")); expmaskreti->set_tooltip_markup(M("TP_LOCALLAB_MASK_TOOLTIP"));
} }
setExpandAlignProperties(expretitools, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
expretitools->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expretitools));
expretitools->setLevel(2);
retinexMethod->append(M("TP_RETINEX_LOW")); retinexMethod->append(M("TP_RETINEX_LOW"));
retinexMethod->append(M("TP_RETINEX_UNIFORM")); retinexMethod->append(M("TP_RETINEX_UNIFORM"));
retinexMethod->append(M("TP_RETINEX_HIGH")); retinexMethod->append(M("TP_RETINEX_HIGH"));
@ -2659,27 +2664,35 @@ pe(nullptr)
ToolParamBlock* const genBox = Gtk::manage(new ToolParamBlock()); ToolParamBlock* const genBox = Gtk::manage(new ToolParamBlock());
genBox->pack_start(*auxBox); genBox->pack_start(*auxBox);
ToolParamBlock* const toolretiBox = Gtk::manage(new ToolParamBlock());
retiBox->pack_start(*retinexMethod); retiBox->pack_start(*retinexMethod);
retiBox->pack_start(*fftwreti); retiBox->pack_start(*fftwreti);
retiBox->pack_start(*equilret); retiBox->pack_start(*equilret);
retiBox->pack_start(*chrrt);
retiBox->pack_start(*neigh); retiBox->pack_start(*neigh);
retiBox->pack_start(*vart); retiBox->pack_start(*vart);
retiBox->pack_start(*scalereti); retiBox->pack_start(*scalereti);
retiBox->pack_start(*darkness);
retiBox->pack_start(*lightnessreti);
retiBox->pack_start(*softradiusret);
retiBox->pack_start(*limd); retiBox->pack_start(*limd);
retiBox->pack_start(*cliptm);
retiBox->pack_start(*offs); retiBox->pack_start(*offs);
retiBox->pack_start(*mMLabels);
retiBox->pack_start(*transLabels); toolretiBox->pack_start(*chrrt);
retiBox->pack_start(*transLabels2); toolretiBox->pack_start(*darkness);
retiBox->pack_start(*LocalcurveEditortransT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor toolretiBox->pack_start(*lightnessreti);
retiBox->pack_start(*LocalcurveEditorgainT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor toolretiBox->pack_start(*cliptm);
toolretiBox->pack_start(*softradiusret);
toolretiBox->pack_start(*LocalcurveEditortransT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
toolretiBox->pack_start(*mMLabels);
toolretiBox->pack_start(*transLabels);
toolretiBox->pack_start(*transLabels2);
toolretiBox->pack_start(*LocalcurveEditorgainT, Gtk::PACK_SHRINK, 4);
expretitools->add(*toolretiBox, false);
retiBox->pack_start(*expretitools, false, false);
retiBox->pack_start(*expmaskreti, false, false); retiBox->pack_start(*expmaskreti, false, false);
// retiBox->pack_start(*inversret); // retiBox->pack_start(*inversret);
retitoolFrame->add(*retiBox); retitoolFrame->add(*retiBox);
genBox->pack_start(*retitoolFrame); genBox->pack_start(*retitoolFrame);
expreti->add(*genBox, false); expreti->add(*genBox, false);
@ -2687,6 +2700,7 @@ pe(nullptr)
panel->pack_start(*expreti, false, false); panel->pack_start(*expreti, false, false);
// Sharpening // Sharpening
Gtk::HBox* const sharpTitleHBox = Gtk::manage(new Gtk::HBox()); Gtk::HBox* const sharpTitleHBox = Gtk::manage(new Gtk::HBox());
Gtk::Label* const sharpLabel = Gtk::manage(new Gtk::Label()); Gtk::Label* const sharpLabel = Gtk::manage(new Gtk::Label());
@ -3530,6 +3544,7 @@ void Locallab::foldAllButMe(GdkEventButton* event, MyExpander *expander)
expmaskexp->set_expanded(expmaskexp == expander); expmaskexp->set_expanded(expmaskexp == expander);
expmasksh->set_expanded(expmasksh == expander); expmasksh->set_expanded(expmasksh == expander);
expmaskcb->set_expanded(expmaskcb == expander); expmaskcb->set_expanded(expmaskcb == expander);
expretitools->set_expanded(expretitools == expander);
expmaskreti->set_expanded(expmaskreti == expander); expmaskreti->set_expanded(expmaskreti == expander);
expmasktm->set_expanded(expmasktm == expander); expmasktm->set_expanded(expmasktm == expander);
expmaskbl->set_expanded(expmaskbl == expander); expmaskbl->set_expanded(expmaskbl == expander);
@ -3635,6 +3650,7 @@ void Locallab::writeOptions(std::vector<int> &tpOpen)
tpOpen.push_back(expshadhigh->get_expanded()); tpOpen.push_back(expshadhigh->get_expanded());
tpOpen.push_back(expmaskcb->get_expanded()); tpOpen.push_back(expmaskcb->get_expanded());
tpOpen.push_back(expcbdl->get_expanded()); tpOpen.push_back(expcbdl->get_expanded());
tpOpen.push_back(expretitools->get_expanded());
tpOpen.push_back(expmaskreti->get_expanded()); tpOpen.push_back(expmaskreti->get_expanded());
tpOpen.push_back(expreti->get_expanded()); tpOpen.push_back(expreti->get_expanded());
tpOpen.push_back(expmasktm->get_expanded()); tpOpen.push_back(expmasktm->get_expanded());
@ -3818,7 +3834,7 @@ void Locallab::refChanged(double huer, double lumar, double chromar)
void Locallab::updateToolState(std::vector<int> &tpOpen) void Locallab::updateToolState(std::vector<int> &tpOpen)
{ {
if (tpOpen.size() >= 30) { if (tpOpen.size() >= 31) {
expsettings->setExpanded(tpOpen.at(0)); expsettings->setExpanded(tpOpen.at(0));
expmaskcol->set_expanded(tpOpen.at(1)); expmaskcol->set_expanded(tpOpen.at(1));
expmaskcol1->set_expanded(tpOpen.at(2)); expmaskcol1->set_expanded(tpOpen.at(2));
@ -3835,20 +3851,21 @@ void Locallab::updateToolState(std::vector<int> &tpOpen)
expshadhigh->set_expanded(tpOpen.at(13)); expshadhigh->set_expanded(tpOpen.at(13));
expmaskcb->set_expanded(tpOpen.at(14)); expmaskcb->set_expanded(tpOpen.at(14));
expcbdl->set_expanded(tpOpen.at(15)); expcbdl->set_expanded(tpOpen.at(15));
expmaskreti->set_expanded(tpOpen.at(16)); expretitools->set_expanded(tpOpen.at(16));
expreti->set_expanded(tpOpen.at(17)); expmaskreti->set_expanded(tpOpen.at(17));
expmasktm->set_expanded(tpOpen.at(18)); expreti->set_expanded(tpOpen.at(18));
exptonemap->set_expanded(tpOpen.at(19)); expmasktm->set_expanded(tpOpen.at(19));
expmaskbl->set_expanded(tpOpen.at(20)); exptonemap->set_expanded(tpOpen.at(20));
expgradvib->set_expanded(tpOpen.at(21)); expmaskbl->set_expanded(tpOpen.at(21));
expmaskvib->set_expanded(tpOpen.at(22)); expgradvib->set_expanded(tpOpen.at(22));
expvibrance->set_expanded(tpOpen.at(23)); expmaskvib->set_expanded(tpOpen.at(23));
expsoft->set_expanded(tpOpen.at(24)); expvibrance->set_expanded(tpOpen.at(24));
expblur->set_expanded(tpOpen.at(25)); expsoft->set_expanded(tpOpen.at(25));
expsharp->set_expanded(tpOpen.at(26)); expblur->set_expanded(tpOpen.at(26));
expcontrast->set_expanded(tpOpen.at(27)); expsharp->set_expanded(tpOpen.at(27));
expdenoi->set_expanded(tpOpen.at(28)); expcontrast->set_expanded(tpOpen.at(28));
explog->set_expanded(tpOpen.at(29)); expdenoi->set_expanded(tpOpen.at(29));
explog->set_expanded(tpOpen.at(30));
} }
} }

View File

@ -59,6 +59,7 @@ private:
MyExpander* const expblur; MyExpander* const expblur;
MyExpander* const exptonemap; MyExpander* const exptonemap;
MyExpander* const expreti; MyExpander* const expreti;
MyExpander* const expretitools;
MyExpander* const expsharp; MyExpander* const expsharp;
MyExpander* const expcontrast; MyExpander* const expcontrast;
MyExpander* const expcbdl; MyExpander* const expcbdl;