Add offset to Retinex

This commit is contained in:
Desmis 2019-09-27 07:57:19 +02:00
parent 8fde6a7565
commit c407da8d0a
10 changed files with 40 additions and 3 deletions

View File

@ -989,6 +989,7 @@ HISTORY_MSG_748;Local - Exp Denoise
HISTORY_MSG_749;Local - Reti Depth HISTORY_MSG_749;Local - Reti Depth
HISTORY_MSG_750;Local - Reti Mode log - lin HISTORY_MSG_750;Local - Reti Mode log - lin
HISTORY_MSG_751;Local - Reti Dehaze luminance HISTORY_MSG_751;Local - Reti Dehaze luminance
HISTORY_MSG_752;Local - Reti Offset
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
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
@ -2200,6 +2201,7 @@ TP_LOCALLAB_RADMASKCOL;Radius
TP_LOCALLAB_RESID;Residual Image TP_LOCALLAB_RESID;Residual Image
TP_LOCALLAB_CONTRESID;Contrast TP_LOCALLAB_CONTRESID;Contrast
TP_LOCALLAB_DEHAFRA;Dehaze TP_LOCALLAB_DEHAFRA;Dehaze
TP_LOCALLAB_OFFS;Offset
TP_LOCALLAB_RETIFRA;Retinex TP_LOCALLAB_RETIFRA;Retinex
TP_LOCALLAB_RETITOOLFRA;Retinex Tools TP_LOCALLAB_RETITOOLFRA;Retinex Tools
TP_LOCALLAB_RETI;Dehaze - Retinex Strong local contrast TP_LOCALLAB_RETI;Dehaze - Retinex Strong local contrast

View File

@ -861,7 +861,7 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, LabImage * bufreti, L
float delta; float delta;
constexpr float eps = 2.f; constexpr float eps = 2.f;
bool useHslLin = false; bool useHslLin = false;
const float offse = 0.f; //loc.offs; const float offse = loc.spots.at(sp).offs;
const float chrT = (float)(loc.spots.at(sp).chrrt) / 100.f; const float chrT = (float)(loc.spots.at(sp).chrrt) / 100.f;
const int scal = (loc.spots.at(sp).scalereti); const int scal = (loc.spots.at(sp).scalereti);
float vart = loc.spots.at(sp).vart / 100.f;//variance float vart = loc.spots.at(sp).vart / 100.f;//variance
@ -1573,7 +1573,7 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, LabImage * bufreti, L
cdmax = cd > cdmax ? cd : cdmax; cdmax = cd > cdmax ? cd : cdmax;
cdmin = cd < cdmin ? cd : cdmin; cdmin = cd < cdmin ? cd : cdmin;
luminance[i][j] = CLIPMAX(LIM(cd, 0.f, maxclip) * str + (1.f - str) * originalLuminance[i][j]); luminance[i][j] = intp(str, clipretinex(cd, 0.f, maxclip), originalLuminance[i][j]);
} }

View File

@ -778,6 +778,7 @@ enum ProcEventCode {
Evlocallabdepth = 748, Evlocallabdepth = 748,
Evlocallabloglin = 749, Evlocallabloglin = 749,
Evlocallablumonly = 750, Evlocallablumonly = 750,
Evlocallaboffs = 751,
NUMOFEVENTS NUMOFEVENTS
}; };

View File

@ -2582,6 +2582,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
chrrt(0.0), chrrt(0.0),
neigh(50.0), neigh(50.0),
vart(150.0), vart(150.0),
offs(0.0),
dehaz(0), dehaz(0),
depth(25), depth(25),
sensih(30), sensih(30),
@ -2846,6 +2847,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& chrrt == other.chrrt && chrrt == other.chrrt
&& neigh == other.neigh && neigh == other.neigh
&& vart == other.vart && vart == other.vart
&& offs == other.offs
&& dehaz == other.dehaz && dehaz == other.dehaz
&& depth == other.depth && depth == other.depth
&& sensih == other.sensih && sensih == other.sensih
@ -4096,6 +4098,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chrrt, "Locallab", "Chrrt_" + std::to_string(i), spot.chrrt, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chrrt, "Locallab", "Chrrt_" + std::to_string(i), spot.chrrt, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).neigh, "Locallab", "Neigh_" + std::to_string(i), spot.neigh, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).neigh, "Locallab", "Neigh_" + std::to_string(i), spot.neigh, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).vart, "Locallab", "Vart_" + std::to_string(i), spot.vart, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).vart, "Locallab", "Vart_" + std::to_string(i), spot.vart, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).offs, "Locallab", "Offs_" + std::to_string(i), spot.offs, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).dehaz, "Locallab", "Dehaz_" + std::to_string(i), spot.dehaz, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).dehaz, "Locallab", "Dehaz_" + std::to_string(i), spot.dehaz, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).depth, "Locallab", "Depth_" + std::to_string(i), spot.depth, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).depth, "Locallab", "Depth_" + std::to_string(i), spot.depth, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensih, "Locallab", "Sensih_" + std::to_string(i), spot.sensih, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensih, "Locallab", "Sensih_" + std::to_string(i), spot.sensih, keyFile);
@ -5473,6 +5476,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Chrrt_" + std::to_string(i), pedited, spot.chrrt, spotEdited.chrrt); assignFromKeyfile(keyFile, "Locallab", "Chrrt_" + std::to_string(i), pedited, spot.chrrt, spotEdited.chrrt);
assignFromKeyfile(keyFile, "Locallab", "Neigh_" + std::to_string(i), pedited, spot.neigh, spotEdited.neigh); assignFromKeyfile(keyFile, "Locallab", "Neigh_" + std::to_string(i), pedited, spot.neigh, spotEdited.neigh);
assignFromKeyfile(keyFile, "Locallab", "Vart_" + std::to_string(i), pedited, spot.vart, spotEdited.vart); assignFromKeyfile(keyFile, "Locallab", "Vart_" + std::to_string(i), pedited, spot.vart, spotEdited.vart);
assignFromKeyfile(keyFile, "Locallab", "Offs_" + std::to_string(i), pedited, spot.offs, spotEdited.offs);
assignFromKeyfile(keyFile, "Locallab", "Dehaz_" + std::to_string(i), pedited, spot.dehaz, spotEdited.dehaz); assignFromKeyfile(keyFile, "Locallab", "Dehaz_" + std::to_string(i), pedited, spot.dehaz, spotEdited.dehaz);
assignFromKeyfile(keyFile, "Locallab", "Depth_" + std::to_string(i), pedited, spot.depth, spotEdited.depth); assignFromKeyfile(keyFile, "Locallab", "Depth_" + std::to_string(i), pedited, spot.depth, spotEdited.depth);
assignFromKeyfile(keyFile, "Locallab", "Sensih_" + std::to_string(i), pedited, spot.sensih, spotEdited.sensih); assignFromKeyfile(keyFile, "Locallab", "Sensih_" + std::to_string(i), pedited, spot.sensih, spotEdited.sensih);

View File

@ -1131,6 +1131,7 @@ struct LocallabParams {
double chrrt; double chrrt;
double neigh; double neigh;
double vart; double vart;
double offs;
int dehaz; int dehaz;
int depth; int depth;
int sensih; int sensih;

View File

@ -777,7 +777,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
LUMINANCECURVE, // EvlocallabexnoiseMethod LUMINANCECURVE, // EvlocallabexnoiseMethod
LUMINANCECURVE, // Evlocallabdepth LUMINANCECURVE, // Evlocallabdepth
LUMINANCECURVE, // Evlocallabloglin LUMINANCECURVE, // Evlocallabloglin
LUMINANCECURVE // Evlocallablumonly LUMINANCECURVE, // Evlocallablumonly
LUMINANCECURVE // Evlocallaboffs
}; };

View File

@ -269,6 +269,7 @@ Locallab::Locallab():
chrrt(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHRRT"), 0.0, 100.0, 0.1, 0.0))), chrrt(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHRRT"), 0.0, 100.0, 0.1, 0.0))),
neigh(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NEIGH"), MINNEIGH, MAXNEIGH, 0.5, 50., nullptr, nullptr, &retiSlider2neigh, &retiNeigh2Slider))), neigh(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NEIGH"), MINNEIGH, MAXNEIGH, 0.5, 50., nullptr, nullptr, &retiSlider2neigh, &retiNeigh2Slider))),
vart(Gtk::manage(new Adjuster(M("TP_LOCALLAB_VART"), 0.1, 500., 0.1, 150.))), vart(Gtk::manage(new Adjuster(M("TP_LOCALLAB_VART"), 0.1, 500., 0.1, 150.))),
offs(Gtk::manage(new Adjuster(M("TP_LOCALLAB_OFFS"), -4000., 10000., 1., 0.))),
dehaz(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DEHAZ"), 0, 100, 1, 0))), dehaz(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DEHAZ"), 0, 100, 1, 0))),
depth(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DEPTH"), 0, 100, 1, 25))), depth(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DEPTH"), 0, 100, 1, 25))),
sensih(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIH"), 0, 100, 1, 30))), sensih(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIH"), 0, 100, 1, 30))),
@ -1344,6 +1345,8 @@ Locallab::Locallab():
vart->set_tooltip_text(M("TP_LOCALLAB_RETI_NEIGH_VART_TOOLTIP")); vart->set_tooltip_text(M("TP_LOCALLAB_RETI_NEIGH_VART_TOOLTIP"));
} }
offs->setAdjusterListener(this);
dehaz->setAdjusterListener(this); dehaz->setAdjusterListener(this);
depth->setAdjusterListener(this); depth->setAdjusterListener(this);
@ -1483,6 +1486,7 @@ Locallab::Locallab():
retiBox->pack_start(*vart); retiBox->pack_start(*vart);
retiBox->pack_start(*scalereti); retiBox->pack_start(*scalereti);
retiBox->pack_start(*limd); retiBox->pack_start(*limd);
retiBox->pack_start(*offs);
retiBox->pack_start(*darkness); retiBox->pack_start(*darkness);
retiBox->pack_start(*lightnessreti); retiBox->pack_start(*lightnessreti);
// retiBox->pack_start(*softradiusret); // retiBox->pack_start(*softradiusret);
@ -3058,6 +3062,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pp->locallab.spots.at(pp->locallab.selspot).chrrt = chrrt->getValue(); pp->locallab.spots.at(pp->locallab.selspot).chrrt = chrrt->getValue();
pp->locallab.spots.at(pp->locallab.selspot).neigh = neigh->getValue(); pp->locallab.spots.at(pp->locallab.selspot).neigh = neigh->getValue();
pp->locallab.spots.at(pp->locallab.selspot).vart = vart->getValue(); pp->locallab.spots.at(pp->locallab.selspot).vart = vart->getValue();
pp->locallab.spots.at(pp->locallab.selspot).offs = offs->getValue();
pp->locallab.spots.at(pp->locallab.selspot).dehaz = dehaz->getIntValue(); pp->locallab.spots.at(pp->locallab.selspot).dehaz = dehaz->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).depth = depth->getIntValue(); pp->locallab.spots.at(pp->locallab.selspot).depth = depth->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).sensih = sensih->getIntValue(); pp->locallab.spots.at(pp->locallab.selspot).sensih = sensih->getIntValue();
@ -3330,6 +3335,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pe->locallab.spots.at(pp->locallab.selspot).chrrt = pe->locallab.spots.at(pp->locallab.selspot).chrrt || chrrt->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).chrrt = pe->locallab.spots.at(pp->locallab.selspot).chrrt || chrrt->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).neigh = pe->locallab.spots.at(pp->locallab.selspot).neigh || neigh->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).neigh = pe->locallab.spots.at(pp->locallab.selspot).neigh || neigh->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).vart = pe->locallab.spots.at(pp->locallab.selspot).vart || vart->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).vart = pe->locallab.spots.at(pp->locallab.selspot).vart || vart->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).offs = pe->locallab.spots.at(pp->locallab.selspot).offs || offs->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).dehaz = pe->locallab.spots.at(pp->locallab.selspot).dehaz || dehaz->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).dehaz = pe->locallab.spots.at(pp->locallab.selspot).dehaz || dehaz->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).depth = pe->locallab.spots.at(pp->locallab.selspot).depth || depth->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).depth = pe->locallab.spots.at(pp->locallab.selspot).depth || depth->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).sensih = pe->locallab.spots.at(pp->locallab.selspot).sensih || sensih->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).sensih = pe->locallab.spots.at(pp->locallab.selspot).sensih || sensih->getEditedState();
@ -3600,6 +3606,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pedited->locallab.spots.at(pp->locallab.selspot).chrrt = pedited->locallab.spots.at(pp->locallab.selspot).chrrt || chrrt->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).chrrt = pedited->locallab.spots.at(pp->locallab.selspot).chrrt || chrrt->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).neigh = pedited->locallab.spots.at(pp->locallab.selspot).neigh || neigh->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).neigh = pedited->locallab.spots.at(pp->locallab.selspot).neigh || neigh->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).vart = pedited->locallab.spots.at(pp->locallab.selspot).vart || vart->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).vart = pedited->locallab.spots.at(pp->locallab.selspot).vart || vart->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).offs = pedited->locallab.spots.at(pp->locallab.selspot).offs || offs->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).dehaz = pedited->locallab.spots.at(pp->locallab.selspot).dehaz || dehaz->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).dehaz = pedited->locallab.spots.at(pp->locallab.selspot).dehaz || dehaz->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).depth = pedited->locallab.spots.at(pp->locallab.selspot).depth || depth->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).depth = pedited->locallab.spots.at(pp->locallab.selspot).depth || depth->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).sensih = pedited->locallab.spots.at(pp->locallab.selspot).sensih || sensih->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).sensih = pedited->locallab.spots.at(pp->locallab.selspot).sensih || sensih->getEditedState();
@ -5354,6 +5361,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
chrrt->setDefault(defSpot->chrrt); chrrt->setDefault(defSpot->chrrt);
neigh->setDefault(defSpot->neigh); neigh->setDefault(defSpot->neigh);
vart->setDefault(defSpot->vart); vart->setDefault(defSpot->vart);
offs->setDefault(defSpot->offs);
dehaz->setDefault((double)defSpot->dehaz); dehaz->setDefault((double)defSpot->dehaz);
depth->setDefault((double)defSpot->depth); depth->setDefault((double)defSpot->depth);
sensih->setDefault((double)defSpot->sensih); sensih->setDefault((double)defSpot->sensih);
@ -5517,6 +5525,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
chrrt->setDefaultEditedState(Irrelevant); chrrt->setDefaultEditedState(Irrelevant);
neigh->setDefaultEditedState(Irrelevant); neigh->setDefaultEditedState(Irrelevant);
vart->setDefaultEditedState(Irrelevant); vart->setDefaultEditedState(Irrelevant);
offs->setDefaultEditedState(Irrelevant);
dehaz->setDefaultEditedState(Irrelevant); dehaz->setDefaultEditedState(Irrelevant);
depth->setDefaultEditedState(Irrelevant); depth->setDefaultEditedState(Irrelevant);
sensih->setDefaultEditedState(Irrelevant); sensih->setDefaultEditedState(Irrelevant);
@ -5684,6 +5693,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
chrrt->setDefaultEditedState(defSpotState->chrrt ? Edited : UnEdited); chrrt->setDefaultEditedState(defSpotState->chrrt ? Edited : UnEdited);
neigh->setDefaultEditedState(defSpotState->neigh ? Edited : UnEdited); neigh->setDefaultEditedState(defSpotState->neigh ? Edited : UnEdited);
vart->setDefaultEditedState(defSpotState->vart ? Edited : UnEdited); vart->setDefaultEditedState(defSpotState->vart ? Edited : UnEdited);
offs->setDefaultEditedState(defSpotState->offs ? Edited : UnEdited);
dehaz->setDefaultEditedState(defSpotState->dehaz ? Edited : UnEdited); dehaz->setDefaultEditedState(defSpotState->dehaz ? Edited : UnEdited);
depth->setDefaultEditedState(defSpotState->depth ? Edited : UnEdited); depth->setDefaultEditedState(defSpotState->depth ? Edited : UnEdited);
sensih->setDefaultEditedState(defSpotState->sensih ? Edited : UnEdited); sensih->setDefaultEditedState(defSpotState->sensih ? Edited : UnEdited);
@ -6363,6 +6373,12 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
} }
} }
if (a == offs) {
if (listener) {
listener->panelChanged(Evlocallaboffs, offs->getTextValue());
}
}
if (a == dehaz) { if (a == dehaz) {
if (listener) { if (listener) {
listener->panelChanged(Evlocallabdehaz, dehaz->getTextValue()); listener->panelChanged(Evlocallabdehaz, dehaz->getTextValue());
@ -6857,6 +6873,7 @@ void Locallab::setBatchMode(bool batchMode)
chrrt->showEditedCB(); chrrt->showEditedCB();
neigh->showEditedCB(); neigh->showEditedCB();
vart->showEditedCB(); vart->showEditedCB();
offs->showEditedCB();
dehaz->showEditedCB(); dehaz->showEditedCB();
depth->showEditedCB(); depth->showEditedCB();
sensih->showEditedCB(); sensih->showEditedCB();
@ -7472,6 +7489,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
chrrt->setValue(pp->locallab.spots.at(index).chrrt); chrrt->setValue(pp->locallab.spots.at(index).chrrt);
neigh->setValue(pp->locallab.spots.at(index).neigh); neigh->setValue(pp->locallab.spots.at(index).neigh);
vart->setValue(pp->locallab.spots.at(index).vart); vart->setValue(pp->locallab.spots.at(index).vart);
offs->setValue(pp->locallab.spots.at(index).offs);
dehaz->setValue(pp->locallab.spots.at(index).dehaz); dehaz->setValue(pp->locallab.spots.at(index).dehaz);
depth->setValue(pp->locallab.spots.at(index).depth); depth->setValue(pp->locallab.spots.at(index).depth);
sensih->setValue(pp->locallab.spots.at(index).sensih); sensih->setValue(pp->locallab.spots.at(index).sensih);
@ -7794,6 +7812,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
chrrt->setEditedState(spotState->chrrt ? Edited : UnEdited); chrrt->setEditedState(spotState->chrrt ? Edited : UnEdited);
neigh->setEditedState(spotState->neigh ? Edited : UnEdited); neigh->setEditedState(spotState->neigh ? Edited : UnEdited);
vart->setEditedState(spotState->vart ? Edited : UnEdited); vart->setEditedState(spotState->vart ? Edited : UnEdited);
offs->setEditedState(spotState->offs ? Edited : UnEdited);
dehaz->setEditedState(spotState->dehaz ? Edited : UnEdited); dehaz->setEditedState(spotState->dehaz ? Edited : UnEdited);
depth->setEditedState(spotState->depth ? Edited : UnEdited); depth->setEditedState(spotState->depth ? Edited : UnEdited);
sensih->setEditedState(spotState->sensih ? Edited : UnEdited); sensih->setEditedState(spotState->sensih ? Edited : UnEdited);

View File

@ -217,6 +217,7 @@ private:
Adjuster* const chrrt; Adjuster* const chrrt;
Adjuster* const neigh; Adjuster* const neigh;
Adjuster* const vart; Adjuster* const vart;
Adjuster* const offs;
Adjuster* const dehaz; Adjuster* const dehaz;
Adjuster* const depth; Adjuster* const depth;
Adjuster* const sensih; Adjuster* const sensih;

View File

@ -1123,6 +1123,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
locallab.spots.at(j).chrrt = locallab.spots.at(j).chrrt && pSpot.chrrt == otherSpot.chrrt; locallab.spots.at(j).chrrt = locallab.spots.at(j).chrrt && pSpot.chrrt == otherSpot.chrrt;
locallab.spots.at(j).neigh = locallab.spots.at(j).neigh && pSpot.neigh == otherSpot.neigh; locallab.spots.at(j).neigh = locallab.spots.at(j).neigh && pSpot.neigh == otherSpot.neigh;
locallab.spots.at(j).vart = locallab.spots.at(j).vart && pSpot.vart == otherSpot.vart; locallab.spots.at(j).vart = locallab.spots.at(j).vart && pSpot.vart == otherSpot.vart;
locallab.spots.at(j).offs = locallab.spots.at(j).offs && pSpot.vart == otherSpot.offs;
locallab.spots.at(j).dehaz = locallab.spots.at(j).dehaz && pSpot.dehaz == otherSpot.dehaz; locallab.spots.at(j).dehaz = locallab.spots.at(j).dehaz && pSpot.dehaz == otherSpot.dehaz;
locallab.spots.at(j).depth = locallab.spots.at(j).depth && pSpot.depth == otherSpot.depth; locallab.spots.at(j).depth = locallab.spots.at(j).depth && pSpot.depth == otherSpot.depth;
locallab.spots.at(j).sensih = locallab.spots.at(j).sensih && pSpot.sensih == otherSpot.sensih; locallab.spots.at(j).sensih = locallab.spots.at(j).sensih && pSpot.sensih == otherSpot.sensih;
@ -3338,6 +3339,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.spots.at(i).vart = mods.locallab.spots.at(i).vart; toEdit.locallab.spots.at(i).vart = mods.locallab.spots.at(i).vart;
} }
if (locallab.spots.at(i).offs) {
toEdit.locallab.spots.at(i).offs = mods.locallab.spots.at(i).offs;
}
if (locallab.spots.at(i).dehaz) { if (locallab.spots.at(i).dehaz) {
toEdit.locallab.spots.at(i).dehaz = mods.locallab.spots.at(i).dehaz; toEdit.locallab.spots.at(i).dehaz = mods.locallab.spots.at(i).dehaz;
} }
@ -4801,6 +4806,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
chrrt(v), chrrt(v),
neigh(v), neigh(v),
vart(v), vart(v),
offs(v),
dehaz(v), dehaz(v),
depth(v), depth(v),
sensih(v), sensih(v),
@ -5062,6 +5068,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
chrrt = v; chrrt = v;
neigh = v; neigh = v;
vart = v; vart = v;
offs = v;
dehaz = v; dehaz = v;
depth = v; depth = v;
sensih = v; sensih = v;

View File

@ -541,6 +541,7 @@ public:
bool chrrt; bool chrrt;
bool neigh; bool neigh;
bool vart; bool vart;
bool offs;
bool dehaz; bool dehaz;
bool depth; bool depth;
bool sensih; bool sensih;