Improvment to residual image
This commit is contained in:
parent
3aacc1db53
commit
fc9867eb2d
@ -781,6 +781,8 @@ HISTORY_MSG_WAVMERGEC;Merge C
|
||||
HISTORY_MSG_WAVSOFTRAD;Soft radius clarity
|
||||
HISTORY_MSG_WAVSOFTRADEND;Soft radius final
|
||||
HISTORY_MSG_WAVSHOWMASK;Show wavelet mask
|
||||
HISTORY_MSG_WAVEDGS;Edge stopping
|
||||
HISTORY_MSG_WAVSCALE;Scale
|
||||
HISTORY_NEWSNAPSHOT;Add
|
||||
HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
|
||||
HISTORY_SNAPSHOT;Snapshot
|
||||
@ -2228,8 +2230,10 @@ TP_WAVELET_TILESIZE;Tiling method
|
||||
TP_WAVELET_TILESLIT;Little tiles
|
||||
TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements.
|
||||
TP_WAVELET_TMSTRENGTH;Compression strength
|
||||
TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out.
|
||||
TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image.
|
||||
TP_WAVELET_TMTYPE;Compression method
|
||||
TP_WAVELET_TMEDGS;Edge stopping
|
||||
TP_WAVELET_TMSCALE;Scale
|
||||
TP_WAVELET_TON;Toning
|
||||
TP_WAVELET_USHARP;Clarity method
|
||||
TP_WAVELET_USH;None
|
||||
|
@ -5126,11 +5126,11 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, int Wi
|
||||
if (!params->epd.enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
if (params->wavelet.enabled && params->wavelet.tmrs != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
*/
|
||||
float stren = params->epd.strength;
|
||||
float edgest = params->epd.edgeStopping;
|
||||
float sca = params->epd.scale;
|
||||
@ -5240,11 +5240,11 @@ void ImProcFunctions::EPDToneMap (LabImage *lab, unsigned int Iterates, int skip
|
||||
if (!params->epd.enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
if (params->wavelet.enabled && params->wavelet.tmrs != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
*/
|
||||
float stren = params->epd.strength;
|
||||
float edgest = params->epd.edgeStopping;
|
||||
float sca = params->epd.scale;
|
||||
|
@ -1590,8 +1590,8 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat
|
||||
|
||||
|
||||
float stren = cp.tmstrength;
|
||||
float edgest = params->epd.edgeStopping;
|
||||
float sca = params->epd.scale;
|
||||
float edgest = params->wavelet.edgs;
|
||||
float sca = params->wavelet.scale;
|
||||
float gamm = params->wavelet.gamma;
|
||||
float rew = params->epd.reweightingIterates;
|
||||
EdgePreservingDecomposition epd2(W_L, H_L);
|
||||
@ -1769,6 +1769,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float *
|
||||
{
|
||||
if (contrast != 0.f && cp.resena && max0 > 0.0) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step
|
||||
{
|
||||
//
|
||||
#ifdef _OPENMP
|
||||
#pragma omp for
|
||||
#endif
|
||||
@ -1794,7 +1795,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float *
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
if (cp.tonemap && cp.contmet == 1 && cp.resena) {
|
||||
float maxp = max0 * 256.f;
|
||||
float minp = min0 * 256.f;
|
||||
|
@ -2190,6 +2190,8 @@ WaveletParams::WaveletParams() :
|
||||
resconH(0),
|
||||
reschro(0),
|
||||
tmrs(0),
|
||||
edgs(1.4),
|
||||
scale(1.),
|
||||
gamma(1),
|
||||
sup(0),
|
||||
sky(0.0),
|
||||
@ -2293,6 +2295,8 @@ bool WaveletParams::operator ==(const WaveletParams& other) const
|
||||
&& resconH == other.resconH
|
||||
&& reschro == other.reschro
|
||||
&& tmrs == other.tmrs
|
||||
&& edgs == other.edgs
|
||||
&& scale == other.scale
|
||||
&& gamma == other.gamma
|
||||
&& sup == other.sup
|
||||
&& sky == other.sky
|
||||
@ -3431,6 +3435,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->wavelet.thrH, "Wavelet", "ThresholdResidHighLight", wavelet.thrH, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.reschro, "Wavelet", "Residualchroma", wavelet.reschro, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.tmrs, "Wavelet", "ResidualTM", wavelet.tmrs, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.edgs, "Wavelet", "ResidualEDGS", wavelet.edgs, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.scale, "Wavelet", "ResidualSCALE", wavelet.scale, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.gamma, "Wavelet", "Residualgamma", wavelet.gamma, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.sky, "Wavelet", "HueRangeResidual", wavelet.sky, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->wavelet.hueskin2, "Wavelet", "HueRange", wavelet.hueskin2.toVector(), keyFile);
|
||||
@ -4516,6 +4522,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Wavelet", "ResidualcontHighlight", pedited, wavelet.resconH, pedited->wavelet.resconH);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "Residualchroma", pedited, wavelet.reschro, pedited->wavelet.reschro);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "ResidualTM", pedited, wavelet.tmrs, pedited->wavelet.tmrs);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "ResidualEDGS", pedited, wavelet.edgs, pedited->wavelet.edgs);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "ResidualSCALE", pedited, wavelet.scale, pedited->wavelet.scale);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "Residualgamma", pedited, wavelet.gamma, pedited->wavelet.gamma);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "ContExtra", pedited, wavelet.sup, pedited->wavelet.sup);
|
||||
assignFromKeyfile(keyFile, "Wavelet", "HueRangeResidual", pedited, wavelet.sky, pedited->wavelet.sky);
|
||||
|
@ -1222,6 +1222,8 @@ struct WaveletParams {
|
||||
int resconH;
|
||||
int reschro;
|
||||
double tmrs;
|
||||
double edgs;
|
||||
double scale;
|
||||
double gamma;
|
||||
int sup;
|
||||
double sky;
|
||||
|
@ -103,6 +103,8 @@ enum {
|
||||
ADDSET_WA_EDGEDETECTTHR,
|
||||
ADDSET_WA_EDGEDETECTTHR2,
|
||||
ADDSET_WA_TMRS,
|
||||
ADDSET_WA_EDGS,
|
||||
ADDSET_WA_SCALE,
|
||||
ADDSET_WA_GAMMA,
|
||||
ADDSET_RETI_STR,
|
||||
ADDSET_RETI_NEIGH,
|
||||
|
@ -165,7 +165,7 @@ void BatchToolPanelCoordinator::initSession ()
|
||||
|
||||
shadowshighlights->setAdjusterBehavior (false, false);
|
||||
dirpyrequalizer->setAdjusterBehavior (false, false, false);
|
||||
wavelet->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
|
||||
wavelet->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
|
||||
dirpyrdenoise->setAdjusterBehavior (false, false, false, false, false, false, false);
|
||||
bayerprocess->setAdjusterBehavior(false, false, false, false, false, false);
|
||||
xtransprocess->setAdjusterBehavior(false, false);
|
||||
@ -213,7 +213,7 @@ void BatchToolPanelCoordinator::initSession ()
|
||||
blackwhite->setAdjusterBehavior (options.baBehav[ADDSET_BLACKWHITE_HUES], options.baBehav[ADDSET_BLACKWHITE_GAMMA]);
|
||||
shadowshighlights->setAdjusterBehavior (options.baBehav[ADDSET_SH_HIGHLIGHTS], options.baBehav[ADDSET_SH_SHADOWS]);
|
||||
dirpyrequalizer->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYREQ], options.baBehav[ADDSET_DIRPYREQ_THRESHOLD], options.baBehav[ADDSET_DIRPYREQ_SKINPROTECT]);
|
||||
wavelet->setAdjusterBehavior (options.baBehav[ADDSET_WA], options.baBehav[ADDSET_WA_THRESHOLD], options.baBehav[ADDSET_WA_THRESHOLD2], options.baBehav[ADDSET_WA_THRES], options.baBehav[ADDSET_WA_CHRO], options.baBehav[ADDSET_WA_CHROMA], options.baBehav[ADDSET_WA_CONTRAST], options.baBehav[ADDSET_WA_SKINPROTECT], options.baBehav[ADDSET_WA_RESCHRO], options.baBehav[ADDSET_WA_TMRS], options.baBehav[ADDSET_WA_RESCON], options.baBehav[ADDSET_WA_RESCONH], options.baBehav[ADDSET_WA_THRR], options.baBehav[ADDSET_WA_THRRH], options.baBehav[ADDSET_WA_SKYPROTECT], options.baBehav[ADDSET_WA_EDGRAD], options.baBehav[ADDSET_WA_EDGVAL], options.baBehav[ADDSET_WA_STRENGTH], options.baBehav[ADDSET_WA_GAMMA], options.baBehav[ADDSET_WA_EDGEDETECT], options.baBehav[ADDSET_WA_EDGEDETECTTHR], options.baBehav[ADDSET_WA_EDGEDETECTTHR2]);
|
||||
wavelet->setAdjusterBehavior (options.baBehav[ADDSET_WA], options.baBehav[ADDSET_WA_THRESHOLD], options.baBehav[ADDSET_WA_THRESHOLD2], options.baBehav[ADDSET_WA_THRES], options.baBehav[ADDSET_WA_CHRO], options.baBehav[ADDSET_WA_CHROMA], options.baBehav[ADDSET_WA_CONTRAST], options.baBehav[ADDSET_WA_SKINPROTECT], options.baBehav[ADDSET_WA_RESCHRO], options.baBehav[ADDSET_WA_TMRS], options.baBehav[ADDSET_WA_EDGS], options.baBehav[ADDSET_WA_SCALE], options.baBehav[ADDSET_WA_RESCON], options.baBehav[ADDSET_WA_RESCONH], options.baBehav[ADDSET_WA_THRR], options.baBehav[ADDSET_WA_THRRH], options.baBehav[ADDSET_WA_SKYPROTECT], options.baBehav[ADDSET_WA_EDGRAD], options.baBehav[ADDSET_WA_EDGVAL], options.baBehav[ADDSET_WA_STRENGTH], options.baBehav[ADDSET_WA_GAMMA], options.baBehav[ADDSET_WA_EDGEDETECT], options.baBehav[ADDSET_WA_EDGEDETECTTHR], options.baBehav[ADDSET_WA_EDGEDETECTTHR2]);
|
||||
dirpyrdenoise->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYRDN_LUMA], options.baBehav[ADDSET_DIRPYRDN_LUMDET], options.baBehav[ADDSET_DIRPYRDN_CHROMA], options.baBehav[ADDSET_DIRPYRDN_CHROMARED], options.baBehav[ADDSET_DIRPYRDN_CHROMABLUE], options.baBehav[ADDSET_DIRPYRDN_GAMMA], options.baBehav[ADDSET_DIRPYRDN_PASSES]);
|
||||
bayerprocess->setAdjusterBehavior(options.baBehav[ADDSET_BAYER_FALSE_COLOR_SUPPRESSION], options.baBehav[ADDSET_BAYER_ITER], options.baBehav[ADDSET_BAYER_DUALDEMOZCONTRAST], options.baBehav[ADDSET_BAYER_PS_SIGMA], options.baBehav[ADDSET_BAYER_PS_SMOOTH], options.baBehav[ADDSET_BAYER_PS_EPERISO]);
|
||||
xtransprocess->setAdjusterBehavior(options.baBehav[ADDSET_BAYER_FALSE_COLOR_SUPPRESSION], options.baBehav[ADDSET_BAYER_DUALDEMOZCONTRAST]);
|
||||
@ -329,6 +329,8 @@ void BatchToolPanelCoordinator::initSession ()
|
||||
if (options.baBehav[ADDSET_WA_RESCONH]) { pparams.wavelet.resconH = 0; }
|
||||
if (options.baBehav[ADDSET_WA_RESCHRO]) { pparams.wavelet.reschro = 0; }
|
||||
if (options.baBehav[ADDSET_WA_TMRS]) { pparams.wavelet.tmrs = 0; }
|
||||
if (options.baBehav[ADDSET_WA_EDGS]) { pparams.wavelet.edgs = 0; }
|
||||
if (options.baBehav[ADDSET_WA_SCALE]) { pparams.wavelet.scale = 0; }
|
||||
if (options.baBehav[ADDSET_WA_THRR]) { pparams.wavelet.thr = 0; }
|
||||
if (options.baBehav[ADDSET_WA_THRRH]) { pparams.wavelet.thrH = 0; }
|
||||
if (options.baBehav[ADDSET_WA_SKYPROTECT]) { pparams.wavelet.sky = 0; }
|
||||
|
12
rtgui/epd.cc
12
rtgui/epd.cc
@ -31,8 +31,8 @@ EdgePreservingDecompositionUI::EdgePreservingDecompositionUI () : FoldableToolPa
|
||||
|
||||
strength = Gtk::manage(new Adjuster (M("TP_EPD_STRENGTH"), -1.0, 2.0, 0.01, 0.5));
|
||||
gamma = Gtk::manage(new Adjuster (M("TP_EPD_GAMMA"), 0.8, 1.5, 0.01, 1.));
|
||||
edgeStopping = Gtk::manage(new Adjuster (M("TP_EPD_EDGESTOPPING"), 0.1, 4.0, 0.01, 0.5));
|
||||
scale = Gtk::manage(new Adjuster (M("TP_EPD_SCALE"), 0.1, 10.0, 0.01, 0.1));
|
||||
edgeStopping = Gtk::manage(new Adjuster (M("TP_EPD_EDGESTOPPING"), 0.1, 4.0, 0.01, 1.4));
|
||||
scale = Gtk::manage(new Adjuster (M("TP_EPD_SCALE"), 0.1, 10.0, 0.01, 1.0));
|
||||
reweightingIterates = Gtk::manage(new Adjuster (M("TP_EPD_REWEIGHTINGITERATES"), 0, 9, 1, 0));
|
||||
|
||||
strength->setAdjusterListener(this);
|
||||
@ -69,7 +69,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite
|
||||
|
||||
setEnabled(pp->epd.enabled);
|
||||
strength->set_sensitive (true);
|
||||
|
||||
/*
|
||||
if(pp->wavelet.enabled) {
|
||||
if(pp->wavelet.tmrs == 0) {
|
||||
strength->set_sensitive (true);
|
||||
@ -79,7 +79,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite
|
||||
gamma->set_sensitive (false);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
strength->setValue(pp->epd.strength);
|
||||
gamma->setValue(pp->epd.gamma);
|
||||
edgeStopping->setValue(pp->epd.edgeStopping);
|
||||
@ -98,7 +98,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited)
|
||||
pp->epd.reweightingIterates = reweightingIterates->getValue();
|
||||
pp->epd.enabled = getEnabled();
|
||||
strength->set_sensitive (true);
|
||||
|
||||
/*
|
||||
if(pp->wavelet.enabled) {
|
||||
if(pp->wavelet.tmrs == 0) {
|
||||
strength->set_sensitive (true);
|
||||
@ -108,7 +108,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited)
|
||||
gamma->set_sensitive (false);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
if(pedited) {
|
||||
pedited->epd.strength = strength->getEditedState();
|
||||
pedited->epd.gamma = gamma->getEditedState();
|
||||
|
@ -499,6 +499,8 @@ void ParamsEdited::set(bool v)
|
||||
wavelet.resconH = v;
|
||||
wavelet.reschro = v;
|
||||
wavelet.tmrs = v;
|
||||
wavelet.edgs = v;
|
||||
wavelet.scale = v;
|
||||
wavelet.gamma = v;
|
||||
wavelet.sup = v;
|
||||
wavelet.sky = v;
|
||||
@ -1073,6 +1075,8 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
wavelet.resconH = wavelet.resconH && p.wavelet.resconH == other.wavelet.resconH;
|
||||
wavelet.reschro = wavelet.reschro && p.wavelet.reschro == other.wavelet.reschro;
|
||||
wavelet.tmrs = wavelet.tmrs && p.wavelet.tmrs == other.wavelet.tmrs;
|
||||
wavelet.edgs = wavelet.edgs && p.wavelet.edgs == other.wavelet.edgs;
|
||||
wavelet.scale = wavelet.scale && p.wavelet.scale == other.wavelet.scale;
|
||||
wavelet.gamma = wavelet.gamma && p.wavelet.gamma == other.wavelet.gamma;
|
||||
wavelet.sup = wavelet.sup && p.wavelet.sup == other.wavelet.sup;
|
||||
wavelet.sky = wavelet.sky && p.wavelet.sky == other.wavelet.sky;
|
||||
@ -3073,6 +3077,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.wavelet.tmrs = dontforceSet && options.baBehav[ADDSET_WA_TMRS] ? toEdit.wavelet.tmrs + mods.wavelet.tmrs : mods.wavelet.tmrs;
|
||||
}
|
||||
|
||||
if (wavelet.edgs) {
|
||||
toEdit.wavelet.edgs = dontforceSet && options.baBehav[ADDSET_WA_EDGS] ? toEdit.wavelet.edgs + mods.wavelet.edgs : mods.wavelet.edgs;
|
||||
}
|
||||
|
||||
if (wavelet.scale) {
|
||||
toEdit.wavelet.scale = dontforceSet && options.baBehav[ADDSET_WA_SCALE] ? toEdit.wavelet.scale + mods.wavelet.scale : mods.wavelet.scale;
|
||||
}
|
||||
|
||||
if (wavelet.gamma) {
|
||||
toEdit.wavelet.gamma = dontforceSet && options.baBehav[ADDSET_WA_GAMMA] ? toEdit.wavelet.gamma + mods.wavelet.gamma : mods.wavelet.gamma;
|
||||
}
|
||||
|
@ -498,6 +498,8 @@ struct WaveletParamsEdited {
|
||||
bool resconH;
|
||||
bool reschro;
|
||||
bool tmrs;
|
||||
bool edgs;
|
||||
bool scale;
|
||||
bool gamma;
|
||||
bool sup;
|
||||
bool sky;
|
||||
|
@ -389,6 +389,8 @@ Gtk::Widget* Preferences::getBatchProcPanel ()
|
||||
appendBehavList (mi, M ("TP_WAVELET_THRH"), ADDSET_WA_THRRH, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_RESCHRO"), ADDSET_WA_RESCHRO, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_TMSTRENGTH"), ADDSET_WA_TMRS, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_TMEDGS"), ADDSET_WA_EDGS, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_TMSCALE"), ADDSET_WA_SCALE, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_SKY"), ADDSET_WA_SKYPROTECT, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_CONTRA"), ADDSET_WA_CONTRAST, true);
|
||||
appendBehavList (mi, M ("TP_WAVELET_STRENGTH"), ADDSET_WA_STRENGTH, true);
|
||||
|
@ -81,6 +81,8 @@ Wavelet::Wavelet() :
|
||||
resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))),
|
||||
reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))),
|
||||
tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))),
|
||||
edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))),
|
||||
scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))),
|
||||
gamma(Gtk::manage(new Adjuster(M("TP_WAVELET_COMPGAMMA"), 0.4, 2.0, 0.01, 1.0))),
|
||||
sup(Gtk::manage(new Adjuster(M("TP_WAVELET_SUPE"), -100, 350, 1, 0))),
|
||||
sky(Gtk::manage(new Adjuster(M("TP_WAVELET_SKY"), -100., 100.0, 1., 0.))),
|
||||
@ -163,6 +165,8 @@ Wavelet::Wavelet() :
|
||||
EvWavsoftrad = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRAD");
|
||||
EvWavsoftradend = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRADEND");
|
||||
EvWavshowmask = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSHOWMASK");
|
||||
EvWavedgs = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVEDGS");
|
||||
EvWavscale = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSCALE");
|
||||
|
||||
expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings));
|
||||
|
||||
@ -704,6 +708,16 @@ Wavelet::Wavelet() :
|
||||
resBox->pack_start(*gamma);
|
||||
gamma->setAdjusterListener(this);
|
||||
|
||||
//edgs->set_tooltip_text(M("TP_WAVELET_TMEDGS_TOOLTIP"));
|
||||
|
||||
resBox->pack_start(*edgs);
|
||||
edgs->setAdjusterListener(this);
|
||||
|
||||
//scale->set_tooltip_text(M("TP_WAVELET_TMSCALE_TOOLTIP"));
|
||||
|
||||
resBox->pack_start(*scale);
|
||||
scale->setAdjusterListener(this);
|
||||
|
||||
Gtk::HSeparator* const separatorR1 = Gtk::manage(new Gtk::HSeparator());
|
||||
resBox->pack_start(*separatorR1, Gtk::PACK_SHRINK, 2);
|
||||
|
||||
@ -1203,6 +1217,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
resconH->setValue(pp->wavelet.resconH);
|
||||
reschro->setValue(pp->wavelet.reschro);
|
||||
tmrs->setValue(pp->wavelet.tmrs);
|
||||
edgs->setValue(pp->wavelet.edgs);
|
||||
scale->setValue(pp->wavelet.scale);
|
||||
gamma->setValue(pp->wavelet.gamma);
|
||||
sup->setValue(pp->wavelet.sup);
|
||||
sky->setValue(pp->wavelet.sky);
|
||||
@ -1350,6 +1366,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited);
|
||||
reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited);
|
||||
tmrs->setEditedState(pedited->wavelet.tmrs ? Edited : UnEdited);
|
||||
edgs->setEditedState(pedited->wavelet.edgs ? Edited : UnEdited);
|
||||
scale->setEditedState(pedited->wavelet.scale ? Edited : UnEdited);
|
||||
gamma->setEditedState(pedited->wavelet.gamma ? Edited : UnEdited);
|
||||
sup->setEditedState(pedited->wavelet.sup ? Edited : UnEdited);
|
||||
sky->setEditedState(pedited->wavelet.sky ? Edited : UnEdited);
|
||||
@ -1529,6 +1547,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->wavelet.resconH = resconH->getValue();
|
||||
pp->wavelet.reschro = reschro->getValue();
|
||||
pp->wavelet.tmrs = tmrs->getValue();
|
||||
pp->wavelet.edgs = edgs->getValue();
|
||||
pp->wavelet.scale = scale->getValue();
|
||||
pp->wavelet.gamma = gamma->getValue();
|
||||
pp->wavelet.sup = sup->getValue();
|
||||
pp->wavelet.sky = sky->getValue();
|
||||
@ -1636,6 +1656,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->wavelet.resconH = resconH->getEditedState();
|
||||
pedited->wavelet.reschro = reschro->getEditedState();
|
||||
pedited->wavelet.tmrs = tmrs->getEditedState();
|
||||
pedited->wavelet.edgs = edgs->getEditedState();
|
||||
pedited->wavelet.scale = scale->getEditedState();
|
||||
pedited->wavelet.gamma = gamma->getEditedState();
|
||||
pedited->wavelet.sup = sup->getEditedState();
|
||||
pedited->wavelet.sky = sky->getEditedState();
|
||||
@ -1867,6 +1889,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit
|
||||
resconH->setDefault(defParams->wavelet.resconH);
|
||||
reschro->setDefault(defParams->wavelet.reschro);
|
||||
tmrs->setDefault(defParams->wavelet.tmrs);
|
||||
edgs->setDefault(defParams->wavelet.edgs);
|
||||
scale->setDefault(defParams->wavelet.scale);
|
||||
gamma->setDefault(defParams->wavelet.gamma);
|
||||
sup->setDefault(defParams->wavelet.sup);
|
||||
sky->setDefault(defParams->wavelet.sky);
|
||||
@ -1925,6 +1949,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit
|
||||
resconH->setDefault(defParams->wavelet.resconH);
|
||||
reschro->setDefault(defParams->wavelet.reschro);
|
||||
tmrs->setDefault(defParams->wavelet.tmrs);
|
||||
edgs->setDefault(defParams->wavelet.edgs);
|
||||
scale->setDefault(defParams->wavelet.scale);
|
||||
gamma->setDefault(defParams->wavelet.gamma);
|
||||
sup->setDefault(defParams->wavelet.sup);
|
||||
sky->setDefaultEditedState(pedited->wavelet.sky ? Edited : UnEdited);
|
||||
@ -1972,6 +1998,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit
|
||||
resconH->setDefaultEditedState(Irrelevant);
|
||||
reschro->setDefaultEditedState(Irrelevant);
|
||||
tmrs->setDefaultEditedState(Irrelevant);
|
||||
edgs->setDefaultEditedState(Irrelevant);
|
||||
scale->setDefaultEditedState(Irrelevant);
|
||||
gamma->setDefaultEditedState(Irrelevant);
|
||||
sup->setDefaultEditedState(Irrelevant);
|
||||
sky->setDefaultEditedState(Irrelevant);
|
||||
@ -2274,6 +2302,14 @@ void Wavelet::TMmethodUpdateUI()
|
||||
}
|
||||
}
|
||||
*/
|
||||
if(TMmethod->get_active_row_number() == 1) {
|
||||
edgs->show();
|
||||
scale->show();
|
||||
} else if (TMmethod->get_active_row_number() == 0) {
|
||||
edgs->hide();
|
||||
scale->hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Wavelet::TMmethodChanged()
|
||||
@ -2476,6 +2512,8 @@ void Wavelet::setBatchMode(bool batchMode)
|
||||
resconH->showEditedCB();
|
||||
reschro->showEditedCB();
|
||||
tmrs->showEditedCB();
|
||||
edgs->showEditedCB();
|
||||
scale->showEditedCB();
|
||||
gamma->showEditedCB();
|
||||
sup->showEditedCB();
|
||||
sky->showEditedCB();
|
||||
@ -2524,7 +2562,7 @@ void Wavelet::setBatchMode(bool batchMode)
|
||||
|
||||
void Wavelet::adjusterUpdateUI(Adjuster* a)
|
||||
{
|
||||
/*
|
||||
/*
|
||||
if (!batchMode) {
|
||||
if (a == tmrs ) {
|
||||
float tm;
|
||||
@ -2537,10 +2575,10 @@ void Wavelet::adjusterUpdateUI(Adjuster* a)
|
||||
tm=tmrs->getValue();
|
||||
if(tm==0.f) tmr->hide();
|
||||
else tmr->show();
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
*/
|
||||
}
|
||||
|
||||
void Wavelet::adjusterChanged(Adjuster* a, double newval)
|
||||
@ -2554,12 +2592,25 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval)
|
||||
listener->panelChanged(EvWavresconH, resconH->getTextValue());
|
||||
} else if (a == reschro) {
|
||||
listener->panelChanged(EvWavreschro, reschro->getTextValue());
|
||||
} else if (a == tmrs) {
|
||||
} else if (a == tmrs) {
|
||||
adjusterUpdateUI(a);
|
||||
listener->panelChanged(EvWavtmrs, tmrs->getTextValue());
|
||||
if(tmrs->getValue() != 0 && TMmethod->get_active_row_number() == 1) {
|
||||
edgs->show();
|
||||
scale->show();
|
||||
} else if (TMmethod->get_active_row_number() == 0) {
|
||||
edgs->hide();
|
||||
scale->hide();
|
||||
}
|
||||
} else if (a == gamma) {
|
||||
adjusterUpdateUI(a);
|
||||
listener->panelChanged(EvWavgamma, gamma->getTextValue());
|
||||
} else if (a == edgs) {
|
||||
adjusterUpdateUI(a);
|
||||
listener->panelChanged(EvWavedgs, edgs->getTextValue());
|
||||
} else if (a == scale) {
|
||||
adjusterUpdateUI(a);
|
||||
listener->panelChanged(EvWavscale, scale->getTextValue());
|
||||
} else if (a == sky) {
|
||||
listener->panelChanged(EvWavsky, sky->getTextValue());
|
||||
} else if (a == sup) {
|
||||
@ -3130,7 +3181,7 @@ void Wavelet::colorForValue(double valX, double valY, enum ColorCaller::ElemType
|
||||
caller->ccGreen = double(G);
|
||||
caller->ccBlue = double(B);
|
||||
}
|
||||
void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add)
|
||||
void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add)
|
||||
{
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
@ -3148,6 +3199,8 @@ void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool th
|
||||
resconH->setAddMode(resconHadd);
|
||||
reschro->setAddMode(reschroadd);
|
||||
tmrs->setAddMode(tmrsadd);
|
||||
edgs->setAddMode(edgsadd);
|
||||
scale->setAddMode(scaleadd);
|
||||
thr->setAddMode(thradd);
|
||||
thrH->setAddMode(thrHadd);
|
||||
sky->setAddMode(skyadd);
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
void autoOpenCurve () override;
|
||||
void curveChanged (CurveEditor* ce) override;
|
||||
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
|
||||
void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add);
|
||||
void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add);
|
||||
void setBatchMode (bool batchMode) override;
|
||||
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
|
||||
void setEditProvider (EditDataProvider *provider) override;
|
||||
@ -72,6 +72,8 @@ private:
|
||||
rtengine::ProcEvent EvWavsoftrad;
|
||||
rtengine::ProcEvent EvWavsoftradend;
|
||||
rtengine::ProcEvent EvWavshowmask;
|
||||
rtengine::ProcEvent EvWavedgs;
|
||||
rtengine::ProcEvent EvWavscale;
|
||||
|
||||
void foldAllButMe (GdkEventButton* event, MyExpander *expander);
|
||||
|
||||
@ -167,6 +169,8 @@ private:
|
||||
Adjuster* const resconH;
|
||||
Adjuster* const reschro;
|
||||
Adjuster* const tmrs;
|
||||
Adjuster* const edgs;
|
||||
Adjuster* const scale;
|
||||
Adjuster* const gamma;
|
||||
Adjuster* const sup;
|
||||
Adjuster* const sky;
|
||||
|
Loading…
x
Reference in New Issue
Block a user