New Locallab procparams structure
Locallab procparams structure updated to improve robustness NB: Some default params have been modified
This commit is contained in:
@@ -1110,8 +1110,8 @@ private:
|
||||
int maxspot = 1;
|
||||
float** shbuffer = nullptr;
|
||||
|
||||
for (int sp = 0; sp < params.locallab.nbspot; sp++) {
|
||||
if (params.locallab.inverssha.at(sp)) {
|
||||
for (int sp = 0; sp < params.locallab.nbspot && sp < (int)params.locallab.spots.size(); sp++) {
|
||||
if (params.locallab.spots.at(sp).inverssha) {
|
||||
shbuffer = new float*[fh];
|
||||
|
||||
for (int i = 0; i < fh; i++) {
|
||||
@@ -1126,20 +1126,20 @@ private:
|
||||
bool localcutili = false;
|
||||
bool localskutili = false;
|
||||
bool localexutili = false;
|
||||
locRETgainCurve.Set(params.locallab.localTgaincurve.at(sp));
|
||||
loclhCurve.Set(params.locallab.LHcurve.at(sp), LHutili);
|
||||
lochhCurve.Set(params.locallab.HHcurve.at(sp), HHutili);
|
||||
CurveFactory::curveLocal(locallutili, params.locallab.llcurve.at(sp), lllocalcurve, 1);
|
||||
CurveFactory::curveCCLocal(localcutili, params.locallab.cccurve.at(sp), cclocalcurve, 1);
|
||||
CurveFactory::curveskLocal(localskutili, params.locallab.skintonescurve.at(sp), sklocalcurve, 1);
|
||||
CurveFactory::curveexLocal(localexutili, params.locallab.excurve.at(sp), exlocalcurve, 1);
|
||||
locRETgainCurve.Set(params.locallab.spots.at(sp).localTgaincurve);
|
||||
loclhCurve.Set(params.locallab.spots.at(sp).LHcurve, LHutili);
|
||||
lochhCurve.Set(params.locallab.spots.at(sp).HHcurve, HHutili);
|
||||
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve, 1);
|
||||
CurveFactory::curveCCLocal(localcutili, params.locallab.spots.at(sp).cccurve, cclocalcurve, 1);
|
||||
CurveFactory::curveskLocal(localskutili, params.locallab.spots.at(sp).skintonescurve, sklocalcurve, 1);
|
||||
CurveFactory::curveexLocal(localexutili, params.locallab.spots.at(sp).excurve, exlocalcurve, 1);
|
||||
//provisory
|
||||
double ecomp = params.locallab.expcomp.at(sp);
|
||||
double black = params.locallab.black.at(sp);
|
||||
double hlcompr = params.locallab.hlcompr.at(sp);
|
||||
double hlcomprthresh = params.locallab.hlcomprthresh.at(sp);
|
||||
double shcompr = params.locallab.shcompr.at(sp);
|
||||
double br = params.locallab.lightness.at(sp);
|
||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||
double black = params.locallab.spots.at(sp).black;
|
||||
double hlcompr = params.locallab.spots.at(sp).hlcompr;
|
||||
double hlcomprthresh = params.locallab.spots.at(sp).hlcomprthresh;
|
||||
double shcompr = params.locallab.spots.at(sp).shcompr;
|
||||
double br = params.locallab.spots.at(sp).lightness;
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br,
|
||||
hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||
1);
|
||||
@@ -1147,7 +1147,7 @@ private:
|
||||
// Reference parameters computation
|
||||
double huere, chromare, lumare, huerefblu, sobelre;
|
||||
|
||||
if (params.locallab.spotMethod.at(sp) == "exc") {
|
||||
if (params.locallab.spots.at(sp).spotMethod == "exc") {
|
||||
ipf.calc_ref(sp, reservView, reservView, 0, 0, fw, fh, 1, huerefblu, huere, chromare, lumare, sobelre);
|
||||
} else {
|
||||
ipf.calc_ref(sp, labView, labView, 0, 0, fw, fh, 1, huerefblu, huere, chromare, lumare, sobelre);
|
||||
@@ -1163,7 +1163,7 @@ private:
|
||||
sklocalcurve.clear();
|
||||
exlocalcurve.clear();
|
||||
|
||||
if (params.locallab.inverssha.at(sp)) {
|
||||
if (params.locallab.spots.at(sp).inverssha) {
|
||||
|
||||
for (int i = 0; i < fh; i++) {
|
||||
delete [] shbuffer[i];
|
||||
|
Reference in New Issue
Block a user