New Locallab procparams structure

Locallab procparams structure updated to improve robustness
NB: Some default params have been modified
This commit is contained in:
Pandagrapher
2018-10-18 19:23:26 +02:00
parent 88c5214a47
commit bf2b7905d3
10 changed files with 1174 additions and 1383 deletions

View File

@@ -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];