|
|
|
@@ -26,8 +26,6 @@
|
|
|
|
|
#include <iostream>
|
|
|
|
|
#include <fstream>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include "../rtgui/md5helper.h"
|
|
|
|
|
#include "../rtgui/thresholdselector.h"
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
|
|
#include "iccstore.h"
|
|
|
|
@@ -101,124 +99,9 @@ ImProcCoordinator::ImProcCoordinator()
|
|
|
|
|
plistener(nullptr), awbListener(nullptr), imageListener(nullptr), aeListener(nullptr), acListener(nullptr), abwListener(nullptr), actListener(nullptr), adnListener(nullptr), awavListener(nullptr), dehaListener(nullptr), frameCountListener(nullptr), imageTypeListener(nullptr), hListener(nullptr),
|
|
|
|
|
resultValid(false), lastOutputProfile("BADFOOD"), lastOutputIntent(RI__COUNT), lastOutputBPC(false), thread(nullptr), changeSinceLast(0), updaterRunning(false), destroying(false), utili(false), autili(false),
|
|
|
|
|
butili(false), ccutili(false), cclutili(false), clcutili(false), opautili(false), wavcontlutili(false),
|
|
|
|
|
dataspot(nullptr), maxdata(0), retistr(nullptr), llstr(nullptr), lhstr(nullptr), ccstr(nullptr), hhstr(nullptr), skinstr(nullptr), pthstr(nullptr), exstr(nullptr),
|
|
|
|
|
circrads(500, -10000),
|
|
|
|
|
locallutili(false), localcutili(false), localskutili(false), localexutili(false), LHutili(false), HHutili(false),
|
|
|
|
|
centerx(500, -10000),
|
|
|
|
|
centery(500, -10000),
|
|
|
|
|
centerxbufs(500, -10000),
|
|
|
|
|
centerybufs(500, -10000),
|
|
|
|
|
adjblurs(500, -10000),
|
|
|
|
|
cutpasts(500, -10000),
|
|
|
|
|
lastdusts(500, -10000),
|
|
|
|
|
blurmets(500, -10000),
|
|
|
|
|
dustmets(500, -10000),
|
|
|
|
|
|
|
|
|
|
locx(500, -10000),
|
|
|
|
|
locy(500, -10000),
|
|
|
|
|
locxl(500, -10000),
|
|
|
|
|
locyt(500, -10000),
|
|
|
|
|
lights(500, -100000),
|
|
|
|
|
contrs(500, -10000),
|
|
|
|
|
chroms(500, -10000),
|
|
|
|
|
sensis(500, -10000),
|
|
|
|
|
expcomps(500, -10000),
|
|
|
|
|
blacks(500, -10000),
|
|
|
|
|
hlcomprs(500, -10000),
|
|
|
|
|
hlcomprthreshs(500, -10000),
|
|
|
|
|
shcomprs(500, -10000),
|
|
|
|
|
sensiexs(500, -10000),
|
|
|
|
|
|
|
|
|
|
transits(500, -10000),
|
|
|
|
|
|
|
|
|
|
inverss(500, -10000),
|
|
|
|
|
curvactivs(500, -10000),
|
|
|
|
|
smeths(500, -10000),
|
|
|
|
|
curens(500, -10000),
|
|
|
|
|
radiuss(500, -10000),
|
|
|
|
|
strengths(500, -10000),
|
|
|
|
|
sensibns(500, -10000),
|
|
|
|
|
inversrads(500, -10000),
|
|
|
|
|
strs(500, 10000),
|
|
|
|
|
chrrts(500, -10000),
|
|
|
|
|
neighs(500, -10000),
|
|
|
|
|
varts(500, -10000),
|
|
|
|
|
sensihs(500, -10000),
|
|
|
|
|
inversrets(500, -10000),
|
|
|
|
|
retinexs(500, -10000),
|
|
|
|
|
sps(500, -10000),
|
|
|
|
|
sharradiuss(500, -10000),
|
|
|
|
|
sharamounts(500, -10000),
|
|
|
|
|
shardampings(500, -10000),
|
|
|
|
|
inversshas(500, -10000),
|
|
|
|
|
shariters(500, -10000),
|
|
|
|
|
sensishas(500, -10000),
|
|
|
|
|
qualitys(500, -10000),
|
|
|
|
|
thress(500, -10000),
|
|
|
|
|
proxis(500, -10000),
|
|
|
|
|
noiselumfs(500, -10000),
|
|
|
|
|
noiselumcs(500, -10000),
|
|
|
|
|
noiselumdetails(500, -10000),
|
|
|
|
|
noiselequals(500, -10000),
|
|
|
|
|
noisechrodetails(500, -10000),
|
|
|
|
|
bilaterals(500, -10000),
|
|
|
|
|
sensidens(500, -10000),
|
|
|
|
|
noisechrofs(500, -10000),
|
|
|
|
|
noisechrocs(500, -10000),
|
|
|
|
|
mult0s(500, -10000),
|
|
|
|
|
mult1s(500, -10000),
|
|
|
|
|
mult2s(500, -10000),
|
|
|
|
|
mult3s(500, -10000),
|
|
|
|
|
mult4s(500, -10000),
|
|
|
|
|
chromacbdls(500, -10000),
|
|
|
|
|
thresholds(500, -10000),
|
|
|
|
|
sensicbs(500, -10000),
|
|
|
|
|
activlums(500, -10000),
|
|
|
|
|
versionmip(0),
|
|
|
|
|
mipver(0),
|
|
|
|
|
strens(500, -10000),
|
|
|
|
|
gammas(500, -10000),
|
|
|
|
|
estops(500, -10000),
|
|
|
|
|
scaltms(500, -10000),
|
|
|
|
|
reweis(500, -10000),
|
|
|
|
|
sensitms(500, -10000),
|
|
|
|
|
qualitycurves(500, -10000),
|
|
|
|
|
sizeretics(500, -10000),
|
|
|
|
|
reticurvs(25000, -10000), //allow 500 values for each control point * 500
|
|
|
|
|
retrabs(500, -10000),
|
|
|
|
|
llcurvs(25000, -10000), //allow 500 values for each control point * 500
|
|
|
|
|
sizellcs(500, -10000),
|
|
|
|
|
lhcurvs(25000, -10000), //allow 500 values for each control point * 500
|
|
|
|
|
hhcurvs(25000, -10000), //allow 500 values for each control point * 500
|
|
|
|
|
sizelhcs(500, -10000),
|
|
|
|
|
sizehhcs(500, -10000),
|
|
|
|
|
cccurvs(25000, -10000), //allow 500 values for each control point * 500
|
|
|
|
|
sizecccs(500, -10000),
|
|
|
|
|
sensivs(500, -10000),
|
|
|
|
|
saturateds(500, -10000),
|
|
|
|
|
pastels(500, -10000),
|
|
|
|
|
psthresholds(500, -10000),
|
|
|
|
|
protectskinss(500, -10000),
|
|
|
|
|
avoidcolorshifts(500, -10000),
|
|
|
|
|
pastsattogs(500, -10000),
|
|
|
|
|
skintonescurves(25000, -10000),
|
|
|
|
|
sizeskintonecurves(500, -10000),
|
|
|
|
|
excurves(25000, -10000),
|
|
|
|
|
sizeexcurves(500, -10000),
|
|
|
|
|
shapemets(500, -1000),
|
|
|
|
|
exclumets(500, -1000),
|
|
|
|
|
sensiexclus(500, -1000),
|
|
|
|
|
strucs(500, -1000),
|
|
|
|
|
warms(500, -1000),
|
|
|
|
|
expdenois(500, -10000),
|
|
|
|
|
expcolors(500, -10000),
|
|
|
|
|
expvibrances(500, -10000),
|
|
|
|
|
expblurs(500, -10000),
|
|
|
|
|
exptonemaps(500, -10000),
|
|
|
|
|
expretis(500, -10000),
|
|
|
|
|
expsharps(500, -10000),
|
|
|
|
|
expcbdls(500, -10000),
|
|
|
|
|
expexposes(500, -10000),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
huerefs(500, -100000.f),
|
|
|
|
|
huerefblurs(500, -100000.f),
|
|
|
|
@@ -1617,475 +1500,6 @@ void ImProcCoordinator::endUpdateParams(int changeFlags)
|
|
|
|
|
startProcessing();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ImProcCoordinator::spotduplic(int **dataspot, int spottodupli, int maxdata)
|
|
|
|
|
{
|
|
|
|
|
//perhaps some datas are redondant..to verify
|
|
|
|
|
circrads[0] = circrads[spottodupli] = dataspot[2][0] = dataspot[2][spottodupli] = dataspot[2][spottodupli - 1];
|
|
|
|
|
locx[0] = locx[spottodupli] = dataspot[3][0] = dataspot[3][spottodupli] = dataspot[3][spottodupli - 1];
|
|
|
|
|
locy[0] = locy[spottodupli] = dataspot[4][0] = dataspot[4][spottodupli] = dataspot[4][spottodupli - 1];
|
|
|
|
|
locyt[0] = locyt[spottodupli] = dataspot[5][0] = dataspot[5][spottodupli] = dataspot[5][spottodupli - 1];
|
|
|
|
|
locxl[0] = locxl[spottodupli] = dataspot[6][0] = dataspot[6][spottodupli] = dataspot[6][spottodupli - 1];
|
|
|
|
|
//change only center position to 200 200 to see changes
|
|
|
|
|
centerx[0] = centerx[spottodupli] = dataspot[7][0] = dataspot[7][spottodupli] = 200; //not to center
|
|
|
|
|
centery[0] = centery[spottodupli] = dataspot[8][0] = dataspot[8][spottodupli] = 200;//not to center to see it is a duplicated spot
|
|
|
|
|
//
|
|
|
|
|
lights[0] = lights[spottodupli] = dataspot[9][0] = dataspot[9][spottodupli] = dataspot[9][spottodupli - 1];
|
|
|
|
|
contrs[0] = contrs[spottodupli] = dataspot[10][0] = dataspot[10][spottodupli] = dataspot[10][spottodupli - 1];
|
|
|
|
|
chroms[0] = chroms[spottodupli] = dataspot[11][0] = dataspot[11][spottodupli] = dataspot[11][spottodupli - 1];
|
|
|
|
|
sensis[0] = sensis[spottodupli] = dataspot[12][0] = dataspot[12][spottodupli] = dataspot[12][spottodupli - 1];
|
|
|
|
|
transits[0] = transits[spottodupli] = dataspot[13][0] = dataspot[13][spottodupli] = dataspot[13][spottodupli - 1];
|
|
|
|
|
inverss[0] = inverss[spottodupli] = dataspot[14][0] = dataspot[14][spottodupli] = dataspot[14][spottodupli - 1];
|
|
|
|
|
smeths[0] = smeths[spottodupli] = dataspot[15][0] = dataspot[15][spottodupli] = dataspot[15][spottodupli - 1];
|
|
|
|
|
//no chnage to spot current value 16
|
|
|
|
|
radiuss[0] = radiuss[spottodupli] = dataspot[17][0] = dataspot[17][spottodupli] = dataspot[17][spottodupli - 1];
|
|
|
|
|
strengths[0] = strengths[spottodupli] = dataspot[18][0] = dataspot[18][spottodupli] = dataspot[18][spottodupli - 1];
|
|
|
|
|
sensibns[0] = sensibns[spottodupli] = dataspot[19][0] = dataspot[19][spottodupli] = dataspot[19][spottodupli - 1];
|
|
|
|
|
inversrads[0] = inversrads[spottodupli] = dataspot[20][0] = dataspot[20][spottodupli] = dataspot[20][spottodupli - 1];
|
|
|
|
|
strs[0] = strs[spottodupli] = dataspot[21][0] = dataspot[21][spottodupli] = dataspot[21][spottodupli - 1];
|
|
|
|
|
chrrts[0] = chrrts[spottodupli] = dataspot[22][0] = dataspot[22][spottodupli] = dataspot[22][spottodupli - 1];
|
|
|
|
|
neighs[0] = neighs[spottodupli] = dataspot[23][0] = dataspot[23][spottodupli] = dataspot[23][spottodupli - 1];
|
|
|
|
|
varts[0] = varts[spottodupli] = dataspot[24][0] = dataspot[24][spottodupli] = dataspot[24][spottodupli - 1];
|
|
|
|
|
sensihs[0] = sensihs[spottodupli] = dataspot[25][0] = dataspot[25][spottodupli] = dataspot[25][spottodupli - 1];
|
|
|
|
|
inversrets[0] = inversrets[spottodupli] = dataspot[26][0] = dataspot[26][spottodupli] = dataspot[26][spottodupli - 1];
|
|
|
|
|
retinexs[0] = retinexs[spottodupli] = dataspot[27][0] = dataspot[27][spottodupli] = dataspot[27][spottodupli - 1];
|
|
|
|
|
sharradiuss[0] = sharradiuss[spottodupli] = dataspot[28][0] = dataspot[28][spottodupli] = dataspot[28][spottodupli - 1];
|
|
|
|
|
sharamounts[0] = sharamounts[spottodupli] = dataspot[29][0] = dataspot[29][spottodupli] = dataspot[29][spottodupli - 1];
|
|
|
|
|
shardampings[0] = shardampings[spottodupli] = dataspot[30][0] = dataspot[30][spottodupli] = dataspot[30][spottodupli - 1];
|
|
|
|
|
shariters[0] = shariters[spottodupli] = dataspot[31][0] = dataspot[31][spottodupli] = dataspot[31][spottodupli - 1];
|
|
|
|
|
sensishas[0] = sensishas[spottodupli] = dataspot[32][0] = dataspot[32][spottodupli] = dataspot[32][spottodupli - 1];
|
|
|
|
|
inversshas[0] = inversshas[spottodupli] = dataspot[33][0] = dataspot[33][spottodupli] = dataspot[33][spottodupli - 1];
|
|
|
|
|
qualitys[0] = qualitys[spottodupli] = dataspot[34][0] = dataspot[34][spottodupli] = dataspot[34][spottodupli - 1];
|
|
|
|
|
thress[0] = thress[spottodupli] = dataspot[35][0] = dataspot[35][spottodupli] = dataspot[35][spottodupli - 1];
|
|
|
|
|
proxis[0] = proxis[spottodupli] = dataspot[36][0] = dataspot[36][spottodupli] = dataspot[36][spottodupli - 1];
|
|
|
|
|
noiselumfs[0] = noiselumfs[spottodupli] = dataspot[37][0] = dataspot[37][spottodupli] = dataspot[37][spottodupli - 1];
|
|
|
|
|
noiselumcs[0] = noiselumcs[spottodupli] = dataspot[38][0] = dataspot[38][spottodupli] = dataspot[38][spottodupli - 1];
|
|
|
|
|
noisechrofs[0] = noisechrofs[spottodupli] = dataspot[39][0] = dataspot[39][spottodupli] = dataspot[39][spottodupli - 1];
|
|
|
|
|
noisechrocs[0] = noisechrocs[spottodupli] = dataspot[40][0] = dataspot[40][spottodupli] = dataspot[40][spottodupli - 1];
|
|
|
|
|
mult0s[0] = mult0s[spottodupli] = dataspot[41][0] = dataspot[41][spottodupli] = dataspot[41][spottodupli - 1];
|
|
|
|
|
mult1s[0] = mult1s[spottodupli] = dataspot[42][0] = dataspot[42][spottodupli] = dataspot[42][spottodupli - 1];
|
|
|
|
|
mult2s[0] = mult2s[spottodupli] = dataspot[43][0] = dataspot[43][spottodupli] = dataspot[43][spottodupli - 1];
|
|
|
|
|
mult3s[0] = mult3s[spottodupli] = dataspot[44][0] = dataspot[44][spottodupli] = dataspot[44][spottodupli - 1];
|
|
|
|
|
mult4s[0] = mult4s[spottodupli] = dataspot[45][0] = dataspot[45][spottodupli] = dataspot[45][spottodupli - 1];
|
|
|
|
|
thresholds[0] = thresholds[spottodupli] = dataspot[46][0] = dataspot[46][spottodupli] = dataspot[46][spottodupli - 1];
|
|
|
|
|
sensicbs[0] = sensicbs[spottodupli] = dataspot[47][0] = dataspot[47][spottodupli] = dataspot[47][spottodupli - 1];
|
|
|
|
|
activlums[0] = activlums[spottodupli] = dataspot[48][0] = dataspot[48][spottodupli] = dataspot[48][spottodupli - 1];
|
|
|
|
|
strens[0] = strens[spottodupli] = dataspot[49][0] = dataspot[49][spottodupli] = dataspot[49][spottodupli - 1];
|
|
|
|
|
gammas[0] = gammas[spottodupli] = dataspot[50][0] = dataspot[50][spottodupli] = dataspot[50][spottodupli - 1];
|
|
|
|
|
estops[0] = estops[spottodupli] = dataspot[51][0] = dataspot[51][spottodupli] = dataspot[51][spottodupli - 1];
|
|
|
|
|
scaltms[0] = scaltms[spottodupli] = dataspot[52][0] = dataspot[52][spottodupli] = dataspot[52][spottodupli - 1];
|
|
|
|
|
reweis[0] = reweis[spottodupli] = dataspot[53][0] = dataspot[53][spottodupli] = dataspot[53][spottodupli - 1];
|
|
|
|
|
sensitms[0] = sensitms[spottodupli] = dataspot[54][0] = dataspot[54][spottodupli] = dataspot[54][spottodupli - 1];
|
|
|
|
|
retrabs[0] = retrabs[spottodupli] = dataspot[55][0] = dataspot[55][spottodupli] = dataspot[55][spottodupli - 1];
|
|
|
|
|
curvactivs[0] = curvactivs[spottodupli] = dataspot[56][0] = dataspot[56][spottodupli] = dataspot[56][spottodupli - 1];
|
|
|
|
|
qualitycurves[0] = qualitycurves[spottodupli] = dataspot[57][0] = dataspot[57][spottodupli] = dataspot[57][spottodupli - 1];
|
|
|
|
|
sensivs[0] = sensivs[spottodupli] = dataspot[58][0] = dataspot[58][spottodupli] = dataspot[58][spottodupli - 1];
|
|
|
|
|
pastels[0] = pastels[spottodupli] = dataspot[59][0] = dataspot[59][spottodupli] = dataspot[59][spottodupli - 1];
|
|
|
|
|
saturateds[0] = saturateds[spottodupli] = dataspot[60][0] = dataspot[60][spottodupli] = dataspot[60][spottodupli - 1];
|
|
|
|
|
protectskinss[0] = protectskinss[spottodupli] = dataspot[61][0] = dataspot[61][spottodupli] = dataspot[61][spottodupli - 1];
|
|
|
|
|
avoidcolorshifts[0] = avoidcolorshifts[spottodupli] = dataspot[62][0] = dataspot[62][spottodupli] = dataspot[62][spottodupli - 1];
|
|
|
|
|
pastsattogs[0] = pastsattogs[spottodupli] = dataspot[63][0] = dataspot[63][spottodupli] = dataspot[63][spottodupli - 1];
|
|
|
|
|
expcomps[0] = expcomps[spottodupli] = dataspot[64][0] = dataspot[64][spottodupli] = dataspot[64][spottodupli - 1];
|
|
|
|
|
blacks[0] = blacks[spottodupli] = dataspot[65][0] = dataspot[65][spottodupli] = dataspot[65][spottodupli - 1];
|
|
|
|
|
hlcomprs[0] = hlcomprs[spottodupli] = dataspot[66][0] = dataspot[66][spottodupli] = dataspot[66][spottodupli - 1];
|
|
|
|
|
hlcomprthreshs[0] = hlcomprthreshs[spottodupli] = dataspot[67][0] = dataspot[67][spottodupli] = dataspot[67][spottodupli - 1];
|
|
|
|
|
shcomprs[0] = shcomprs[spottodupli] = dataspot[68][0] = dataspot[68][spottodupli] = dataspot[68][spottodupli - 1];
|
|
|
|
|
sensiexs[0] = sensiexs[spottodupli] = dataspot[69][0] = dataspot[69][spottodupli] = dataspot[69][spottodupli - 1];
|
|
|
|
|
centerxbufs[0] = centerxbufs[spottodupli] = dataspot[70][0] = dataspot[70][spottodupli] = dataspot[70][spottodupli - 1];
|
|
|
|
|
centerybufs[0] = centerybufs[spottodupli] = dataspot[71][0] = dataspot[71][spottodupli] = dataspot[71][spottodupli - 1];
|
|
|
|
|
adjblurs[0] = adjblurs[spottodupli] = dataspot[72][0] = dataspot[72][spottodupli] = dataspot[72][spottodupli - 1];
|
|
|
|
|
cutpasts[0] = cutpasts[spottodupli] = dataspot[73][0] = dataspot[73][spottodupli] = dataspot[73][spottodupli - 1];
|
|
|
|
|
chromacbdls[0] = chromacbdls[spottodupli] = dataspot[74][0] = dataspot[74][spottodupli] = dataspot[74][spottodupli - 1];
|
|
|
|
|
lastdusts[0] = lastdusts[spottodupli] = dataspot[75][0] = dataspot[75][spottodupli] = dataspot[75][spottodupli - 1];
|
|
|
|
|
blurmets[0] = blurmets[spottodupli] = dataspot[76][0] = dataspot[76][spottodupli] = dataspot[76][spottodupli - 1];
|
|
|
|
|
dustmets[0] = dustmets[spottodupli] = dataspot[77][0] = dataspot[77][spottodupli] = dataspot[77][spottodupli - 1];
|
|
|
|
|
exclumets[0] = exclumets[spottodupli] = dataspot[78][0] = dataspot[78][spottodupli] = dataspot[78][spottodupli - 1];
|
|
|
|
|
sensiexclus[0] = sensiexclus[spottodupli] = dataspot[79][0] = dataspot[79][spottodupli] = dataspot[79][spottodupli - 1];
|
|
|
|
|
strucs[0] = strucs[spottodupli] = dataspot[80][0] = dataspot[80][spottodupli] = dataspot[80][spottodupli - 1];
|
|
|
|
|
warms[0] = warms[spottodupli] = dataspot[81][0] = dataspot[81][spottodupli] = dataspot[81][spottodupli - 1];
|
|
|
|
|
noiselumdetails[0] = noiselumdetails[spottodupli] = dataspot[82][0] = dataspot[82][spottodupli] = dataspot[82][spottodupli - 1];
|
|
|
|
|
noisechrodetails[0] = noisechrodetails[spottodupli] = dataspot[83][0] = dataspot[83][spottodupli] = dataspot[83][spottodupli - 1];
|
|
|
|
|
sensidens[0] = sensidens[spottodupli] = dataspot[84][0] = dataspot[84][spottodupli] = dataspot[84][spottodupli - 1];
|
|
|
|
|
expdenois[0] = expdenois[spottodupli] = dataspot[85][0] = dataspot[85][spottodupli] = dataspot[85][spottodupli - 1];
|
|
|
|
|
expcolors[0] = expcolors[spottodupli] = dataspot[86][0] = dataspot[86][spottodupli] = dataspot[86][spottodupli - 1];
|
|
|
|
|
expvibrances[0] = expvibrances[spottodupli] = dataspot[87][0] = dataspot[87][spottodupli] = dataspot[87][spottodupli - 1];
|
|
|
|
|
expblurs[0] = expblurs[spottodupli] = dataspot[88][0] = dataspot[88][spottodupli] = dataspot[88][spottodupli - 1];
|
|
|
|
|
exptonemaps[0] = exptonemaps[spottodupli] = dataspot[89][0] = dataspot[89][spottodupli] = dataspot[89][spottodupli - 1];
|
|
|
|
|
expretis[0] = expretis[spottodupli] = dataspot[90][0] = dataspot[90][spottodupli] = dataspot[90][spottodupli - 1];
|
|
|
|
|
expsharps[0] = expsharps[spottodupli] = dataspot[91][0] = dataspot[91][spottodupli] = dataspot[91][spottodupli - 1];
|
|
|
|
|
expcbdls[0] = expcbdls[spottodupli] = dataspot[92][0] = dataspot[92][spottodupli] = dataspot[92][spottodupli - 1];
|
|
|
|
|
expexposes[0] = expexposes[spottodupli] = dataspot[93][0] = dataspot[93][spottodupli] = dataspot[93][spottodupli - 1];
|
|
|
|
|
bilaterals[0] = bilaterals[spottodupli] = dataspot[94][0] = dataspot[94][spottodupli] = dataspot[94][spottodupli - 1];
|
|
|
|
|
noiselequals[0] = noiselequals[spottodupli] = dataspot[95][0] = dataspot[95][spottodupli] = dataspot[95][spottodupli - 1];
|
|
|
|
|
shapemets[0] = shapemets[spottodupli] = dataspot[96][0] = dataspot[96][spottodupli] = dataspot[96][spottodupli - 1];
|
|
|
|
|
|
|
|
|
|
//datas for end ... references hue, etc.
|
|
|
|
|
huerefblurs[0] = huerefblurs[spottodupli] = dataspot[maxdata - 5][0] = dataspot[maxdata - 5][spottodupli] = dataspot[maxdata - 5][spottodupli - 1];
|
|
|
|
|
huerefs[0] = huerefs[spottodupli] = dataspot[maxdata - 4][0] = dataspot[maxdata - 4][spottodupli] = dataspot[maxdata - 4][spottodupli - 1];
|
|
|
|
|
chromarefs[0] = chromarefs[spottodupli] = dataspot[maxdata - 3][0] = dataspot[maxdata - 3][spottodupli] = dataspot[maxdata - 3][spottodupli - 1];
|
|
|
|
|
lumarefs[0] = lumarefs[spottodupli] = dataspot[maxdata - 2][0] = dataspot[maxdata - 2][spottodupli] = dataspot[maxdata - 2][spottodupli - 1];
|
|
|
|
|
sobelrefs[0] = sobelrefs[spottodupli] = dataspot[maxdata - 1][0] = dataspot[maxdata - 1][spottodupli] = dataspot[maxdata - 1][spottodupli - 1];
|
|
|
|
|
|
|
|
|
|
//perhaps not good after ?? to verify and to complete ?? difficult but "only" curves
|
|
|
|
|
retistr[spottodupli] = retistr[spottodupli - 1];
|
|
|
|
|
llstr[spottodupli] = llstr[spottodupli - 1];
|
|
|
|
|
lhstr[spottodupli] = lhstr[spottodupli - 1];
|
|
|
|
|
ccstr[spottodupli] = ccstr[spottodupli - 1];
|
|
|
|
|
hhstr[spottodupli] = hhstr[spottodupli - 1];
|
|
|
|
|
skinstr[spottodupli] = skinstr[spottodupli - 1];
|
|
|
|
|
pthstr[spottodupli] = pthstr[spottodupli - 1];
|
|
|
|
|
exstr[spottodupli] = exstr[spottodupli - 1];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ImProcCoordinator::changenumberofspot(int **dataspot, int maxdata, int maxspot, int ns, Glib::ustring datal, int versionmip)
|
|
|
|
|
{
|
|
|
|
|
ofstream fic(datal, ios::out | ios::app); // ouverture en écriture avec effacement du fichier ouvert
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int sp = ns + 1 ; sp < maxspot; sp++) { // spots default
|
|
|
|
|
int t_sp = sp;
|
|
|
|
|
int t_mipversion = versionmip;
|
|
|
|
|
int t_circrad = 18;
|
|
|
|
|
int t_locX = 250;
|
|
|
|
|
int t_locY = 250;
|
|
|
|
|
int t_locYT = 250;
|
|
|
|
|
int t_locXL = 250;
|
|
|
|
|
int t_centerX = 0;
|
|
|
|
|
int t_centerY = 0;
|
|
|
|
|
int t_lightness = 0;
|
|
|
|
|
int t_contrast = 0;
|
|
|
|
|
int t_chroma = 0;
|
|
|
|
|
int t_sensi = 19;
|
|
|
|
|
int t_transit = 60;
|
|
|
|
|
int t_invers = 0;
|
|
|
|
|
int t_Smeth = 0;
|
|
|
|
|
int t_currentspot = 1;
|
|
|
|
|
int t_radius = 1;
|
|
|
|
|
int t_strength = 0;
|
|
|
|
|
int t_sensibn = 40;
|
|
|
|
|
int t_inversrad = 0;
|
|
|
|
|
int t_str = 0;
|
|
|
|
|
int t_chrrt = 0;
|
|
|
|
|
int t_neigh = 50;
|
|
|
|
|
int t_vart = 200;
|
|
|
|
|
int t_sensih = 19;
|
|
|
|
|
int t_inversret = 0;
|
|
|
|
|
int t_retinexMethod = 2;
|
|
|
|
|
int t_sharradius = 40;
|
|
|
|
|
int t_sharamount = 75;
|
|
|
|
|
int t_shardamping = 75;
|
|
|
|
|
int t_shariter = 30;
|
|
|
|
|
int t_sensisha = 19;
|
|
|
|
|
int t_inverssha = 0;
|
|
|
|
|
int t_qualityMethod = 1;
|
|
|
|
|
int t_thres = 18;
|
|
|
|
|
int t_proxi = 0;
|
|
|
|
|
int t_noiselumf = 0;
|
|
|
|
|
int t_noiselumc = 0;
|
|
|
|
|
int t_noisechrof = 0;
|
|
|
|
|
int t_noisechroc = 0;
|
|
|
|
|
int t_mult0 = 100;
|
|
|
|
|
int t_mult1 = 100;
|
|
|
|
|
int t_mult2 = 100;
|
|
|
|
|
int t_mult3 = 100;
|
|
|
|
|
int t_mult4 = 100;
|
|
|
|
|
int t_threshold = 20;
|
|
|
|
|
int t_sensicb = 19;
|
|
|
|
|
int t_activlum = 0;
|
|
|
|
|
//10001 TM
|
|
|
|
|
int t_stren = 0;
|
|
|
|
|
int t_gamma = 100;
|
|
|
|
|
int t_estop = 140;
|
|
|
|
|
int t_scaltm = 10;
|
|
|
|
|
int t_rewei = 0;
|
|
|
|
|
int t_sensitm = 19;
|
|
|
|
|
|
|
|
|
|
//10002 curve
|
|
|
|
|
int t_retrab = 500;
|
|
|
|
|
|
|
|
|
|
std::string t_curvret = "1000A0B120C350D350E700F500G350H350I1000J120K350L350M";//12 points
|
|
|
|
|
//10003
|
|
|
|
|
std::string t_curvll = "3000A0B0C1000D1000E"; //"3000A0B0C499D501E1000F1000G"; //"3000A0B0C1000D1000E";//0 points with marks
|
|
|
|
|
//10004
|
|
|
|
|
std::string t_curvlh = "1000A0B500C350D350E166F500G350H350I333J500K350L350M500N500O350P350Q666R500S350T350U833V500W350X350Y";
|
|
|
|
|
//10005
|
|
|
|
|
int t_curvactiv = 0;
|
|
|
|
|
//10006
|
|
|
|
|
std::string t_curvcc = "3000A0B0C1000D1000E";
|
|
|
|
|
//10007
|
|
|
|
|
int t_qualitycurveMethod = 0;
|
|
|
|
|
//10008
|
|
|
|
|
std::string t_curvhh = "1000A0B500C350D350E166F500G350H350I333J500K350L350M500N500O350P350Q666R500S350T350U833V500W350X350Y";
|
|
|
|
|
|
|
|
|
|
//10009
|
|
|
|
|
int t_sensiv = 19;
|
|
|
|
|
int t_pastel = 0;
|
|
|
|
|
int t_saturated = 0;
|
|
|
|
|
std::string t_psthres = "0A75B";
|
|
|
|
|
int t_proskin = 0;
|
|
|
|
|
int t_avoidcsh = 0;
|
|
|
|
|
int t_pastsat = 0;
|
|
|
|
|
std::string t_curvskin = "3000A0B0C1000D1000E"; //"3000A0B0C499D501E1000F1000G"; //"3000A0B0C1000D1000E";//0 points with marks
|
|
|
|
|
|
|
|
|
|
int t_expcomp = 0;
|
|
|
|
|
int t_black = 0;
|
|
|
|
|
int t_hlcompr = 20;
|
|
|
|
|
int t_hlcomprthresh = 33;
|
|
|
|
|
int t_shcompr = 50;
|
|
|
|
|
int t_sensiex = 19;
|
|
|
|
|
//10010
|
|
|
|
|
std::string t_curvex = "3000A0B0C1000D1000E";
|
|
|
|
|
|
|
|
|
|
//10012
|
|
|
|
|
int t_centerXbuf = 0;
|
|
|
|
|
int t_centerYbuf = 0;
|
|
|
|
|
int t_adjblur = 0;
|
|
|
|
|
int t_cutpast = 0;
|
|
|
|
|
|
|
|
|
|
//10013
|
|
|
|
|
int t_chromacbdl = 0;
|
|
|
|
|
|
|
|
|
|
//10014
|
|
|
|
|
int t_lastdust = 0;
|
|
|
|
|
int t_blurMethod = 0;
|
|
|
|
|
int t_dustMethod = 1;
|
|
|
|
|
|
|
|
|
|
//10016
|
|
|
|
|
int t_excludemeth = 0;
|
|
|
|
|
int t_sensiexclu = 19;
|
|
|
|
|
int t_struc = 0;
|
|
|
|
|
|
|
|
|
|
//10017
|
|
|
|
|
int t_warm = 0;
|
|
|
|
|
//10018
|
|
|
|
|
int t_noiselumdetail = 0;
|
|
|
|
|
//10019
|
|
|
|
|
int t_noisechrodetail = 0;
|
|
|
|
|
//10020
|
|
|
|
|
int t_sensiden = 30;
|
|
|
|
|
|
|
|
|
|
//10021
|
|
|
|
|
int t_expdenoi = 0;
|
|
|
|
|
|
|
|
|
|
int t_expcolor = 0;
|
|
|
|
|
int t_expvibrance = 0;
|
|
|
|
|
int t_expblur = 0;
|
|
|
|
|
int t_exptonemap = 0;
|
|
|
|
|
int t_expreti = 0;
|
|
|
|
|
int t_expsharp = 0;
|
|
|
|
|
int t_expcbdl = 0;
|
|
|
|
|
int t_expexpose = 0;
|
|
|
|
|
|
|
|
|
|
//10022
|
|
|
|
|
int t_bilateral = 0;
|
|
|
|
|
|
|
|
|
|
//10023
|
|
|
|
|
int t_noiselequal = 7;
|
|
|
|
|
//10024
|
|
|
|
|
int t_shapemeth = 0;
|
|
|
|
|
|
|
|
|
|
fic << "Mipversion=" << t_mipversion << '@' << endl;
|
|
|
|
|
fic << "Spot=" << t_sp << '@' << endl;
|
|
|
|
|
fic << "Circrad=" << t_circrad << '@' << endl;
|
|
|
|
|
fic << "LocX=" << t_locX << '@' << endl;
|
|
|
|
|
fic << "LocY=" << t_locY << '@' << endl;
|
|
|
|
|
fic << "LocYT=" << t_locYT << '@' << endl;
|
|
|
|
|
fic << "LocXL=" << t_locXL << '@' << endl ;
|
|
|
|
|
fic << "CenterX=" << t_centerX << '@' << endl;
|
|
|
|
|
fic << "CenterY=" << t_centerY << '@' << endl;
|
|
|
|
|
fic << "Lightness=" << t_lightness << '@' << endl;
|
|
|
|
|
fic << "Contrast=" << t_contrast << '@' << endl;
|
|
|
|
|
fic << "Chroma=" << t_chroma << '@' << endl;
|
|
|
|
|
fic << "Sensi=" << t_sensi << '@' << endl;
|
|
|
|
|
fic << "Transit=" << t_transit << '@' << endl;
|
|
|
|
|
fic << "Invers=" << t_invers << '@' << endl;
|
|
|
|
|
fic << "Smethod=" << t_Smeth << '@' << endl;
|
|
|
|
|
fic << "Currentspot=" << t_currentspot << '@' << endl;
|
|
|
|
|
fic << "Radius=" << t_radius << '@' << endl;
|
|
|
|
|
fic << "Strength=" << t_strength << '@' << endl;
|
|
|
|
|
fic << "Sensibn=" << t_sensibn << '@' << endl;
|
|
|
|
|
fic << "Inversrad=" << t_inversrad << '@' << endl;
|
|
|
|
|
fic << "Str=" << t_str << '@' << endl;
|
|
|
|
|
fic << "Chroma=" << t_chrrt << '@' << endl;
|
|
|
|
|
fic << "Neigh=" << t_neigh << '@' << endl;
|
|
|
|
|
fic << "Vart=" << t_vart << '@' << endl;
|
|
|
|
|
fic << "Sensih=" << t_sensih << '@' << endl;
|
|
|
|
|
fic << "Inversret=" << t_inversret << '@' << endl;
|
|
|
|
|
fic << "retinexMethod=" << t_retinexMethod << '@' << endl;
|
|
|
|
|
fic << "Sharradius=" << t_sharradius << '@' << endl;
|
|
|
|
|
fic << "Sharamount=" << t_sharamount << '@' << endl;
|
|
|
|
|
fic << "Shardamping=" << t_shardamping << '@' << endl;
|
|
|
|
|
fic << "Shariter=" << t_shariter << '@' << endl;
|
|
|
|
|
fic << "Sensisha=" << t_sensisha << '@' << endl;
|
|
|
|
|
fic << "Inverssha=" << t_inverssha << '@' << endl;
|
|
|
|
|
fic << "qualityMethod=" << t_qualityMethod << '@' << endl;
|
|
|
|
|
fic << "Thres=" << t_thres << '@' << endl;
|
|
|
|
|
fic << "Proxi=" << t_proxi << '@' << endl;
|
|
|
|
|
fic << "Noiselumf=" << t_noiselumf << '@' << endl;
|
|
|
|
|
fic << "Noiselumc=" << t_noiselumc << '@' << endl;
|
|
|
|
|
fic << "Noisechrof=" << t_noisechrof << '@' << endl;
|
|
|
|
|
fic << "Noisechroc=" << t_noisechroc << '@' << endl;
|
|
|
|
|
fic << "Mult0=" << t_mult0 << '@' << endl;
|
|
|
|
|
fic << "Mult1=" << t_mult1 << '@' << endl;
|
|
|
|
|
fic << "Mult2=" << t_mult2 << '@' << endl;
|
|
|
|
|
fic << "Mult3=" << t_mult3 << '@' << endl;
|
|
|
|
|
fic << "Mult4=" << t_mult4 << '@' << endl;
|
|
|
|
|
fic << "Threshold=" << t_threshold << '@' << endl;
|
|
|
|
|
fic << "Sensicb=" << t_sensicb << '@' << endl;
|
|
|
|
|
fic << "Activblurlum=" << t_activlum << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "Stren=" << t_stren << '@' << endl;
|
|
|
|
|
fic << "Gamma=" << t_gamma << '@' << endl;
|
|
|
|
|
fic << "Estop=" << t_estop << '@' << endl;
|
|
|
|
|
fic << "Scaltm=" << t_scaltm << '@' << endl;
|
|
|
|
|
fic << "Rewei=" << t_rewei << '@' << endl;
|
|
|
|
|
fic << "Sensitm=" << t_sensitm << '@' << endl;
|
|
|
|
|
fic << "Retrab=" << t_retrab << '@' << endl;
|
|
|
|
|
fic << "Curvactiv=" << t_curvactiv << '@' << endl;
|
|
|
|
|
fic << "qualitycurveMethod=" << t_qualitycurveMethod << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "Sensiv=" << t_sensiv << '@' << endl;
|
|
|
|
|
fic << "Pastel=" << t_pastel << '@' << endl;
|
|
|
|
|
fic << "Saturated=" << t_saturated << '@' << endl;
|
|
|
|
|
fic << "Proskin=" << t_proskin << '@' << endl;
|
|
|
|
|
fic << "Avoidcsh=" << t_avoidcsh << '@' << endl;
|
|
|
|
|
fic << "Pastsat=" << t_pastsat << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "Expcomp=" << t_expcomp << '@' << endl;
|
|
|
|
|
fic << "Black=" << t_black << '@' << endl;
|
|
|
|
|
fic << "Hlcompr=" << t_hlcompr << '@' << endl;
|
|
|
|
|
fic << "Hlcomprthresh=" << t_hlcomprthresh << '@' << endl;
|
|
|
|
|
fic << "Shcompr=" << t_shcompr << '@' << endl;
|
|
|
|
|
fic << "Sensiex=" << t_sensiex << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "CenterXbuf=" << t_centerXbuf << '@' << endl;
|
|
|
|
|
fic << "CenterYbuf=" << t_centerYbuf << '@' << endl;
|
|
|
|
|
fic << "Adjblur=" << t_adjblur << '@' << endl;
|
|
|
|
|
fic << "Cutpast=" << t_cutpast << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "Chromacbdl=" << t_chromacbdl << '@' << endl;
|
|
|
|
|
fic << "Lastdust=" << t_lastdust << '@' << endl;
|
|
|
|
|
fic << "BlurMethod=" << t_blurMethod << '@' << endl;
|
|
|
|
|
fic << "DustMethod=" << t_dustMethod << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "ExcludeMethod=" << t_excludemeth << '@' << endl;
|
|
|
|
|
fic << "Sensiexclu=" << t_sensiexclu << '@' << endl;
|
|
|
|
|
fic << "Struc=" << t_struc << '@' << endl;
|
|
|
|
|
fic << "Warm=" << t_warm << '@' << endl;
|
|
|
|
|
fic << "Noiselumdetail=" << t_noiselumdetail << '@' << endl;
|
|
|
|
|
fic << "Noisechrodetail=" << t_noisechrodetail << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "Sensiden=" << t_sensiden << '@' << endl;
|
|
|
|
|
fic << "Expdenoi=" << t_expdenoi << '@' << endl;
|
|
|
|
|
fic << "Expcolor=" << t_expcolor << '@' << endl;
|
|
|
|
|
fic << "Expvibrance=" << t_expvibrance << '@' << endl;
|
|
|
|
|
fic << "Expblur=" << t_expblur << '@' << endl;
|
|
|
|
|
fic << "Exptonemap=" << t_exptonemap << '@' << endl;
|
|
|
|
|
fic << "Expreti=" << t_expreti << '@' << endl;
|
|
|
|
|
fic << "Expsharp=" << t_expsharp << '@' << endl;
|
|
|
|
|
fic << "Expcbdl=" << t_expcbdl << '@' << endl;
|
|
|
|
|
fic << "Expexpose=" << t_expexpose << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "Bilateral=" << t_bilateral << '@' << endl;
|
|
|
|
|
fic << "Noiselequal=" << t_noiselequal << '@' << endl;
|
|
|
|
|
fic << "ShapeMethod=" << t_shapemeth << '@' << endl;
|
|
|
|
|
|
|
|
|
|
fic << "curveReti=" << t_curvret << '@' << endl;
|
|
|
|
|
fic << "curveLL=" << t_curvll << '@' << endl;
|
|
|
|
|
fic << "curveLH=" << t_curvlh << '@' << endl;
|
|
|
|
|
fic << "curveCC=" << t_curvcc << '@' << endl;
|
|
|
|
|
fic << "curveHH=" << t_curvhh << '@' << endl;
|
|
|
|
|
fic << "curveskin=" << t_curvskin << '@' << endl;
|
|
|
|
|
fic << "pthres=" << t_psthres << '@' << endl;
|
|
|
|
|
fic << "curveex=" << t_curvex << '@' << endl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fic << endl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fic.close();
|
|
|
|
|
|
|
|
|
|
ifstream fich2(datal, ios::in);
|
|
|
|
|
|
|
|
|
|
if (fich2) {
|
|
|
|
|
|
|
|
|
|
std::string line2;
|
|
|
|
|
std::string spotline2;
|
|
|
|
|
int cont2 = 0;
|
|
|
|
|
int ns2 = 0;
|
|
|
|
|
int maxin = maxdata - 5; //70 ;//64
|
|
|
|
|
|
|
|
|
|
while (getline(fich2, line2)) {
|
|
|
|
|
spotline2 = line2;
|
|
|
|
|
std::size_t pos2 = spotline2.find("=");
|
|
|
|
|
std::size_t posend2 = spotline2.find("@"); //in case of for futur use
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "Mipversion") {
|
|
|
|
|
std::string strversion = spotline2.substr(pos2 + 1, (posend2 - pos2));
|
|
|
|
|
versionmip = std::stoi(strversion.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "Spot") {
|
|
|
|
|
cont2 = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cont2++;
|
|
|
|
|
std::string str32 = spotline2.substr(pos2 + 1, (posend2 - pos2));
|
|
|
|
|
|
|
|
|
|
if (cont2 == 1) {
|
|
|
|
|
ns2 = std::stoi(str32.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (cont2 >= 2 && cont2 < 16) {
|
|
|
|
|
dataspot[cont2][ns2] = std::stoi(str32.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "Currentspot") {
|
|
|
|
|
dataspot[16][0] = std::stoi(str32.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (cont2 > 16 && cont2 < maxin) {
|
|
|
|
|
dataspot[cont2][ns2] = std::stoi(str32.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveReti") {
|
|
|
|
|
retistr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveLL") {
|
|
|
|
|
llstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveLH") {
|
|
|
|
|
lhstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveCC") {
|
|
|
|
|
ccstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveHH") {
|
|
|
|
|
hhstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveskin") {
|
|
|
|
|
skinstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "pthres") {
|
|
|
|
|
pthstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (spotline2.substr(0, pos2) == "curveex") {
|
|
|
|
|
exstr[ns2] = str32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fich2.close() ;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool ImProcCoordinator::getHighQualComputed()
|
|
|
|
|
{
|
|
|
|
|
// this function may only be called from detail windows
|
|
|
|
|