Added GUI sigmaed to edge sharpness wavelet
This commit is contained in:
parent
4af3ffadc2
commit
07e6d07d46
@ -1152,6 +1152,7 @@ HISTORY_MSG_911;Local - Blur Chroma Luma
|
|||||||
HISTORY_MSG_912;Local - Blur Guide filter strength
|
HISTORY_MSG_912;Local - Blur Guide filter strength
|
||||||
HISTORY_MSG_913;Local - Contrast Wavelet Sigma DR
|
HISTORY_MSG_913;Local - Contrast Wavelet Sigma DR
|
||||||
HISTORY_MSG_914;Local - Blur Wavelet Sigma BL
|
HISTORY_MSG_914;Local - Blur Wavelet Sigma BL
|
||||||
|
HISTORY_MSG_915;Local - Edge Wavelet Sigma ED
|
||||||
HISTORY_MSG_CAT02PRESET;Cat02 automatic preset
|
HISTORY_MSG_CAT02PRESET;Cat02 automatic preset
|
||||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||||
|
@ -937,6 +937,7 @@ enum ProcEventCode {
|
|||||||
Evlocallabstrbl = 911,
|
Evlocallabstrbl = 911,
|
||||||
Evlocallabsigmadr = 912,
|
Evlocallabsigmadr = 912,
|
||||||
Evlocallabsigmabl = 913,
|
Evlocallabsigmabl = 913,
|
||||||
|
Evlocallabsigmaed = 914,
|
||||||
|
|
||||||
NUMOFEVENTS
|
NUMOFEVENTS
|
||||||
};
|
};
|
||||||
|
@ -2840,6 +2840,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
|||||||
strwav(0.0),
|
strwav(0.0),
|
||||||
angwav(0.0),
|
angwav(0.0),
|
||||||
strengthw(0.0),
|
strengthw(0.0),
|
||||||
|
sigmaed(1.0),
|
||||||
radiusw(15.0),
|
radiusw(15.0),
|
||||||
detailw(10.0),
|
detailw(10.0),
|
||||||
gradw(90.0),
|
gradw(90.0),
|
||||||
@ -3284,6 +3285,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
|||||||
&& strwav == other.strwav
|
&& strwav == other.strwav
|
||||||
&& angwav == other.angwav
|
&& angwav == other.angwav
|
||||||
&& strengthw == other.strengthw
|
&& strengthw == other.strengthw
|
||||||
|
&& sigmaed == other.sigmaed
|
||||||
&& radiusw == other.radiusw
|
&& radiusw == other.radiusw
|
||||||
&& detailw == other.detailw
|
&& detailw == other.detailw
|
||||||
&& gradw == other.gradw
|
&& gradw == other.gradw
|
||||||
@ -4724,6 +4726,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
|||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).strwav, "Locallab", "Strwav_" + std::to_string(i), spot.strwav, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).strwav, "Locallab", "Strwav_" + std::to_string(i), spot.strwav, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).angwav, "Locallab", "Angwav_" + std::to_string(i), spot.angwav, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).angwav, "Locallab", "Angwav_" + std::to_string(i), spot.angwav, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).strengthw, "Locallab", "Strengthw_" + std::to_string(i), spot.strengthw, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).strengthw, "Locallab", "Strengthw_" + std::to_string(i), spot.strengthw, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sigmaed, "Locallab", "Sigmaed_" + std::to_string(i), spot.sigmaed, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).radiusw, "Locallab", "Radiusw_" + std::to_string(i), spot.radiusw, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).radiusw, "Locallab", "Radiusw_" + std::to_string(i), spot.radiusw, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).detailw, "Locallab", "Detailw_" + std::to_string(i), spot.detailw, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).detailw, "Locallab", "Detailw_" + std::to_string(i), spot.detailw, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gradw, "Locallab", "Gradw_" + std::to_string(i), spot.gradw, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gradw, "Locallab", "Gradw_" + std::to_string(i), spot.gradw, keyFile);
|
||||||
@ -6369,6 +6372,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
assignFromKeyfile(keyFile, "Locallab", "Strwav_" + std::to_string(i), pedited, spot.strwav, spotEdited.strwav);
|
assignFromKeyfile(keyFile, "Locallab", "Strwav_" + std::to_string(i), pedited, spot.strwav, spotEdited.strwav);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Angwav_" + std::to_string(i), pedited, spot.angwav, spotEdited.angwav);
|
assignFromKeyfile(keyFile, "Locallab", "Angwav_" + std::to_string(i), pedited, spot.angwav, spotEdited.angwav);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Strengthw_" + std::to_string(i), pedited, spot.strengthw, spotEdited.strengthw);
|
assignFromKeyfile(keyFile, "Locallab", "Strengthw_" + std::to_string(i), pedited, spot.strengthw, spotEdited.strengthw);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "Sigmaed_" + std::to_string(i), pedited, spot.sigmaed, spotEdited.sigmaed);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Radiusw_" + std::to_string(i), pedited, spot.radiusw, spotEdited.radiusw);
|
assignFromKeyfile(keyFile, "Locallab", "Radiusw_" + std::to_string(i), pedited, spot.radiusw, spotEdited.radiusw);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Detailw_" + std::to_string(i), pedited, spot.detailw, spotEdited.detailw);
|
assignFromKeyfile(keyFile, "Locallab", "Detailw_" + std::to_string(i), pedited, spot.detailw, spotEdited.detailw);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Gradw_" + std::to_string(i), pedited, spot.gradw, spotEdited.gradw);
|
assignFromKeyfile(keyFile, "Locallab", "Gradw_" + std::to_string(i), pedited, spot.gradw, spotEdited.gradw);
|
||||||
|
@ -1316,6 +1316,7 @@ struct LocallabParams {
|
|||||||
double strwav;
|
double strwav;
|
||||||
double angwav;
|
double angwav;
|
||||||
double strengthw;
|
double strengthw;
|
||||||
|
double sigmaed;
|
||||||
double radiusw;
|
double radiusw;
|
||||||
double detailw;
|
double detailw;
|
||||||
double gradw;
|
double gradw;
|
||||||
|
@ -940,7 +940,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
|||||||
LUMINANCECURVE, // EvlocallabchroMethod
|
LUMINANCECURVE, // EvlocallabchroMethod
|
||||||
LUMINANCECURVE, // Evlocallabstrbl
|
LUMINANCECURVE, // Evlocallabstrbl
|
||||||
LUMINANCECURVE, // Evlocallabsigmadr
|
LUMINANCECURVE, // Evlocallabsigmadr
|
||||||
LUMINANCECURVE // Evlocallabsigmabl
|
LUMINANCECURVE, // Evlocallabsigmabl
|
||||||
|
LUMINANCECURVE // Evlocallabsigmaed
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -902,6 +902,7 @@ private:
|
|||||||
Gtk::CheckButton* const wavedg;
|
Gtk::CheckButton* const wavedg;
|
||||||
ToolParamBlock* const edgsBox;
|
ToolParamBlock* const edgsBox;
|
||||||
Adjuster* const strengthw;
|
Adjuster* const strengthw;
|
||||||
|
Adjuster* const sigmaed;
|
||||||
CurveEditorGroup* const LocalcurveEditorwavedg;
|
CurveEditorGroup* const LocalcurveEditorwavedg;
|
||||||
FlatCurveEditor* const wavshapeedg;
|
FlatCurveEditor* const wavshapeedg;
|
||||||
Adjuster* const gradw;
|
Adjuster* const gradw;
|
||||||
|
@ -2023,6 +2023,7 @@ LocallabContrast::LocallabContrast():
|
|||||||
wavedg(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_EDGFRA")))),
|
wavedg(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_EDGFRA")))),
|
||||||
edgsBox(Gtk::manage(new ToolParamBlock())),
|
edgsBox(Gtk::manage(new ToolParamBlock())),
|
||||||
strengthw(Gtk::manage(new Adjuster(M("TP_WAVELET_EDVAL"), 0., 100.0, 0.5, 0.))),
|
strengthw(Gtk::manage(new Adjuster(M("TP_WAVELET_EDVAL"), 0., 100.0, 0.5, 0.))),
|
||||||
|
sigmaed(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SIGMAWAV"), 0.2, 2.5, 0.01, 1.))),
|
||||||
LocalcurveEditorwavedg(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVEDG"))),
|
LocalcurveEditorwavedg(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVEDG"))),
|
||||||
wavshapeedg(static_cast<FlatCurveEditor*>(LocalcurveEditorwavedg->addCurve(CT_Flat, "", nullptr, false, false))),
|
wavshapeedg(static_cast<FlatCurveEditor*>(LocalcurveEditorwavedg->addCurve(CT_Flat, "", nullptr, false, false))),
|
||||||
gradw(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECT"), 0., 100.0, 0.5, 90.))),
|
gradw(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECT"), 0., 100.0, 0.5, 90.))),
|
||||||
@ -2171,6 +2172,7 @@ LocallabContrast::LocallabContrast():
|
|||||||
wavedgConn = wavedg->signal_toggled().connect(sigc::mem_fun(*this, &LocallabContrast::wavedgChanged));
|
wavedgConn = wavedg->signal_toggled().connect(sigc::mem_fun(*this, &LocallabContrast::wavedgChanged));
|
||||||
|
|
||||||
strengthw->setAdjusterListener(this);
|
strengthw->setAdjusterListener(this);
|
||||||
|
sigmaed->setAdjusterListener(this);
|
||||||
|
|
||||||
LocalcurveEditorwavedg->setCurveListener(this);
|
LocalcurveEditorwavedg->setCurveListener(this);
|
||||||
|
|
||||||
@ -2405,6 +2407,7 @@ LocallabContrast::LocallabContrast():
|
|||||||
blurcontBox->pack_start(*gradwavFrame);
|
blurcontBox->pack_start(*gradwavFrame);
|
||||||
edgFrame->set_label_widget(*wavedg);
|
edgFrame->set_label_widget(*wavedg);
|
||||||
edgsBox->pack_start(*strengthw);
|
edgsBox->pack_start(*strengthw);
|
||||||
|
edgsBox->pack_start(*sigmaed);
|
||||||
edgsBox->pack_start(*LocalcurveEditorwavedg, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
edgsBox->pack_start(*LocalcurveEditorwavedg, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||||
edgsBox->pack_start(*gradw);
|
edgsBox->pack_start(*gradw);
|
||||||
edgsBox->pack_start(*waveshow);
|
edgsBox->pack_start(*waveshow);
|
||||||
@ -2612,6 +2615,7 @@ void LocallabContrast::read(const rtengine::procparams::ProcParams* pp, const Pa
|
|||||||
angwav->setValue(pp->locallab.spots.at(index).angwav);
|
angwav->setValue(pp->locallab.spots.at(index).angwav);
|
||||||
wavedg->set_active(pp->locallab.spots.at(index).wavedg);
|
wavedg->set_active(pp->locallab.spots.at(index).wavedg);
|
||||||
strengthw->setValue(pp->locallab.spots.at(index).strengthw);
|
strengthw->setValue(pp->locallab.spots.at(index).strengthw);
|
||||||
|
sigmaed->setValue(pp->locallab.spots.at(index).sigmaed);
|
||||||
wavshapeedg->setCurve(pp->locallab.spots.at(index).locedgwavcurve);
|
wavshapeedg->setCurve(pp->locallab.spots.at(index).locedgwavcurve);
|
||||||
gradw->setValue(pp->locallab.spots.at(index).gradw);
|
gradw->setValue(pp->locallab.spots.at(index).gradw);
|
||||||
waveshow->set_active(pp->locallab.spots.at(index).waveshow);
|
waveshow->set_active(pp->locallab.spots.at(index).waveshow);
|
||||||
@ -2729,6 +2733,7 @@ void LocallabContrast::write(rtengine::procparams::ProcParams* pp, ParamsEdited*
|
|||||||
pp->locallab.spots.at(index).angwav = angwav->getValue();
|
pp->locallab.spots.at(index).angwav = angwav->getValue();
|
||||||
pp->locallab.spots.at(index).wavedg = wavedg->get_active();
|
pp->locallab.spots.at(index).wavedg = wavedg->get_active();
|
||||||
pp->locallab.spots.at(index).strengthw = strengthw->getValue();
|
pp->locallab.spots.at(index).strengthw = strengthw->getValue();
|
||||||
|
pp->locallab.spots.at(index).sigmaed = sigmaed->getValue();
|
||||||
pp->locallab.spots.at(index).locedgwavcurve = wavshapeedg->getCurve();
|
pp->locallab.spots.at(index).locedgwavcurve = wavshapeedg->getCurve();
|
||||||
pp->locallab.spots.at(index).gradw = gradw->getValue();
|
pp->locallab.spots.at(index).gradw = gradw->getValue();
|
||||||
pp->locallab.spots.at(index).waveshow = waveshow->get_active();
|
pp->locallab.spots.at(index).waveshow = waveshow->get_active();
|
||||||
@ -2815,6 +2820,7 @@ void LocallabContrast::setDefaults(const rtengine::procparams::ProcParams* defPa
|
|||||||
strwav->setDefault(defSpot.strwav);
|
strwav->setDefault(defSpot.strwav);
|
||||||
angwav->setDefault(defSpot.angwav);
|
angwav->setDefault(defSpot.angwav);
|
||||||
strengthw->setDefault(defSpot.strengthw);
|
strengthw->setDefault(defSpot.strengthw);
|
||||||
|
sigmaed->setDefault(defSpot.sigmaed);
|
||||||
gradw->setDefault(defSpot.gradw);
|
gradw->setDefault(defSpot.gradw);
|
||||||
radiusw->setDefault(defSpot.radiusw);
|
radiusw->setDefault(defSpot.radiusw);
|
||||||
detailw->setDefault(defSpot.detailw);
|
detailw->setDefault(defSpot.detailw);
|
||||||
@ -2944,6 +2950,13 @@ void LocallabContrast::adjusterChanged(Adjuster* a, double newval)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (a == sigmaed) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(Evlocallabsigmaed,
|
||||||
|
sigmaed->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (a == gradw) {
|
if (a == gradw) {
|
||||||
if (listener) {
|
if (listener) {
|
||||||
listener->panelChanged(Evlocallabgradw,
|
listener->panelChanged(Evlocallabgradw,
|
||||||
@ -3461,6 +3474,7 @@ void LocallabContrast::updateContrastGUI1()
|
|||||||
strwav->hide();
|
strwav->hide();
|
||||||
angwav->hide();
|
angwav->hide();
|
||||||
strengthw->hide();
|
strengthw->hide();
|
||||||
|
sigmaed->hide();
|
||||||
LocalcurveEditorwavedg->hide();
|
LocalcurveEditorwavedg->hide();
|
||||||
gradw->hide();
|
gradw->hide();
|
||||||
radiusw->hide();
|
radiusw->hide();
|
||||||
@ -3501,6 +3515,7 @@ void LocallabContrast::updateContrastGUI1()
|
|||||||
strwav->show();
|
strwav->show();
|
||||||
angwav->show();
|
angwav->show();
|
||||||
strengthw->show();
|
strengthw->show();
|
||||||
|
sigmaed->show();
|
||||||
LocalcurveEditorwavedg->show();
|
LocalcurveEditorwavedg->show();
|
||||||
gradw->show();
|
gradw->show();
|
||||||
radiusw->show();
|
radiusw->show();
|
||||||
|
@ -1343,6 +1343,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
|||||||
locallab.spots.at(j).strwav = locallab.spots.at(j).strwav && pSpot.strwav == otherSpot.strwav;
|
locallab.spots.at(j).strwav = locallab.spots.at(j).strwav && pSpot.strwav == otherSpot.strwav;
|
||||||
locallab.spots.at(j).angwav = locallab.spots.at(j).angwav && pSpot.angwav == otherSpot.angwav;
|
locallab.spots.at(j).angwav = locallab.spots.at(j).angwav && pSpot.angwav == otherSpot.angwav;
|
||||||
locallab.spots.at(j).strengthw = locallab.spots.at(j).strengthw && pSpot.strengthw == otherSpot.strengthw;
|
locallab.spots.at(j).strengthw = locallab.spots.at(j).strengthw && pSpot.strengthw == otherSpot.strengthw;
|
||||||
|
locallab.spots.at(j).sigmaed = locallab.spots.at(j).sigmaed && pSpot.sigmaed == otherSpot.sigmaed;
|
||||||
locallab.spots.at(j).radiusw = locallab.spots.at(j).radiusw && pSpot.radiusw == otherSpot.radiusw;
|
locallab.spots.at(j).radiusw = locallab.spots.at(j).radiusw && pSpot.radiusw == otherSpot.radiusw;
|
||||||
locallab.spots.at(j).detailw = locallab.spots.at(j).detailw && pSpot.detailw == otherSpot.detailw;
|
locallab.spots.at(j).detailw = locallab.spots.at(j).detailw && pSpot.detailw == otherSpot.detailw;
|
||||||
locallab.spots.at(j).gradw = locallab.spots.at(j).gradw && pSpot.gradw == otherSpot.gradw;
|
locallab.spots.at(j).gradw = locallab.spots.at(j).gradw && pSpot.gradw == otherSpot.gradw;
|
||||||
@ -4296,6 +4297,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
|||||||
toEdit.locallab.spots.at(i).strengthw = mods.locallab.spots.at(i).strengthw;
|
toEdit.locallab.spots.at(i).strengthw = mods.locallab.spots.at(i).strengthw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).sigmaed) {
|
||||||
|
toEdit.locallab.spots.at(i).sigmaed = mods.locallab.spots.at(i).sigmaed;
|
||||||
|
}
|
||||||
|
|
||||||
if (locallab.spots.at(i).radiusw) {
|
if (locallab.spots.at(i).radiusw) {
|
||||||
toEdit.locallab.spots.at(i).radiusw = mods.locallab.spots.at(i).radiusw;
|
toEdit.locallab.spots.at(i).radiusw = mods.locallab.spots.at(i).radiusw;
|
||||||
}
|
}
|
||||||
@ -6012,6 +6017,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
|||||||
strwav(v),
|
strwav(v),
|
||||||
angwav(v),
|
angwav(v),
|
||||||
strengthw(v),
|
strengthw(v),
|
||||||
|
sigmaed(v),
|
||||||
radiusw(v),
|
radiusw(v),
|
||||||
detailw(v),
|
detailw(v),
|
||||||
gradw(v),
|
gradw(v),
|
||||||
@ -6449,6 +6455,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
|||||||
strwav = v;
|
strwav = v;
|
||||||
angwav = v;
|
angwav = v;
|
||||||
strengthw = v;
|
strengthw = v;
|
||||||
|
sigmaed = v;
|
||||||
radiusw = v;
|
radiusw = v;
|
||||||
detailw = v;
|
detailw = v;
|
||||||
gradw = v;
|
gradw = v;
|
||||||
|
@ -743,6 +743,7 @@ public:
|
|||||||
bool strwav;
|
bool strwav;
|
||||||
bool angwav;
|
bool angwav;
|
||||||
bool strengthw;
|
bool strengthw;
|
||||||
|
bool sigmaed;
|
||||||
bool radiusw;
|
bool radiusw;
|
||||||
bool detailw;
|
bool detailw;
|
||||||
bool gradw;
|
bool gradw;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user