Fixed some bugs and first Exposure mode without curve

This commit is contained in:
Desmis
2017-07-23 14:02:41 +02:00
parent 3a4c957377
commit 432e123733
20 changed files with 2129 additions and 890 deletions

View File

@@ -1047,7 +1047,10 @@ private:
LUTf lllocalcurve (65536, 0);
LUTf cclocalcurve (65536, 0);
LUTf sklocalcurve (65536, 0);
LUTf hltonecurveloc (32768, 0);
LUTf shtonecurveloc (32768, 0);
LUTf tonecurveloc (32768, 0);
LUTf exlocalcurve (32768, 0);
// int realspot = params.locallab.nbspot;
int maxspot = settings->nspot + 1;
ifstream fic0 (datalab, ios::in);
@@ -1098,9 +1101,9 @@ private:
std::string inser;
int **dataspots;
dataspots = new int*[67];
dataspots = new int*[73];
for (int i = 0; i < 67; i++) {
for (int i = 0; i < 73; i++) {
dataspots[i] = new int[maxspot];
}
@@ -1273,9 +1276,16 @@ private:
dataspots[63][0] = 1;
}
dataspots[64][0] = 100.f * params.locallab.hueref;
dataspots[65][0] = params.locallab.chromaref;
dataspots[66][0] = params.locallab.lumaref;
dataspots[64][0] = params.locallab.expcomp;
dataspots[65][0] = params.locallab.black;
dataspots[66][0] = params.locallab.hlcompr;
dataspots[67][0] = params.locallab.hlcomprthresh;
dataspots[68][0] = params.locallab.shcompr;
dataspots[69][0] = params.locallab.sensiex;
dataspots[70][0] = 100.f * params.locallab.hueref;
dataspots[71][0] = params.locallab.chromaref;
dataspots[72][0] = params.locallab.lumaref;
//curve Reti local
int siz = params.locallab.localTgaincurve.size();
@@ -1474,7 +1484,7 @@ private:
dataspots[16][0] = std::stoi (str3.c_str());
}
if (cont > 16 && cont < 67) {
if (cont > 16 && cont < 73) {
dataspots[cont][ns] = std::stoi (str3.c_str());
}
@@ -1755,9 +1765,16 @@ private:
params.locallab.pastsattog = true;
}
params.locallab.hueref = ((float) dataspots[64][sp]) / 100.f;
params.locallab.chromaref = dataspots[65][sp];
params.locallab.lumaref = dataspots[66][sp];
params.locallab.expcomp = dataspots[64][sp];
params.locallab.black = dataspots[65][sp];
params.locallab.hlcompr = dataspots[66][sp];
params.locallab.hlcomprthresh = dataspots[67][sp];
params.locallab.shcompr = dataspots[68][sp];
params.locallab.sensiex = dataspots[69][sp];
params.locallab.hueref = ((float) dataspots[70][sp]) / 100.f;
params.locallab.chromaref = dataspots[71][sp];
params.locallab.lumaref = dataspots[72][sp];
int *s_datc;
@@ -1884,7 +1901,7 @@ private:
bool locallutili = false;
bool localcutili = false;
bool localskutili = false;
bool localexutili = false;
std::string t_curvskinref = "3000A0B0C1000D1000E@";
std::string t_none = "0A@";
@@ -1896,6 +1913,20 @@ private:
CurveFactory::curveCCLocal (localcutili, params.locallab.cccurve, cclocalcurve, 1);
CurveFactory::curveskLocal (localskutili, params.locallab.skintonescurve, sklocalcurve, 1);
CurveFactory::curveexLocal (localexutili, params.locallab.excurve, exlocalcurve, 1);
//provisory
double br = 0.;
double contr = 0.;
double ecomp = params.locallab.expcomp;
double black = params.locallab.black;
double hlcompr = params.locallab.hlcompr;
double hlcomprthresh = params.locallab.hlcomprthresh;
double shcompr = params.locallab.shcompr;
CurveFactory::complexCurvelocal (ecomp, black, hlcompr, hlcomprthresh, shcompr, br, contr,
hist16, hltonecurveloc , shtonecurveloc, tonecurveloc,
1);
double huere, chromare, lumare;
ipf.calc_ref (2, sp, (float**)shbuffer, labView, labView, 0, 0, 0, 0, fw, fh, fw, fh, locutili, 1, locRETgainCurve, locallutili, lllocalcurve, loclhCurve, cclocalcurve, sklocalcurve, huere, chromare, lumare);
@@ -1903,16 +1934,17 @@ private:
params.locallab.chromaref = chromare;
params.locallab.lumaref = lumare;
ipf.Lab_Local (2, sp, (float**)shbuffer, labView, labView, 0, 0, 0, 0, fw, fh, fw, fh, locutili, 1, locRETgainCurve, locallutili, lllocalcurve, loclhCurve, lochhCurve, LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, params.locallab.hueref, params.locallab.chromaref, params.locallab.lumaref);
ipf.Lab_Local (2, sp, (float**)shbuffer, labView, labView, 0, 0, 0, 0, fw, fh, fw, fh, locutili, 1, locRETgainCurve, locallutili, lllocalcurve, loclhCurve, lochhCurve, LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, hltonecurveloc , shtonecurveloc, tonecurveloc, params.locallab.hueref, params.locallab.chromaref, params.locallab.lumaref);
lllocalcurve.clear();
cclocalcurve.clear();
sklocalcurve.clear();
exlocalcurve.clear();
}
for (int i = 0; i < 61; i++) {
for (int i = 0; i < 73; i++) {
delete [] dataspots[i];
}