Settings output device in main menu

This commit is contained in:
Desmis
2017-07-28 17:41:48 +02:00
parent 10822f5c2e
commit ef39df4f39
11 changed files with 2107 additions and 1748 deletions

View File

@@ -263,6 +263,7 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh
double Yw;
Yw = 1.0;
double Xw, Zw;
double Xwout, Zwout;
double f, c, nc, yb = 0., la, xw, yw, zw, f2 = 0., c2 = 0., nc2 = 0., yb2 = 0., la2;
double fl, n, nbb, ncb, aw;
double xwd = 0., ywd, zwd = 0.;
@@ -273,6 +274,7 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh
bool ciedata = params->colorappearance.datacie;
ColorTemp::temp2mulxyz (params->wb.temperature, params->wb.green, params->wb.method, Xw, Zw); //compute white Xw Yw Zw : white current WB
ColorTemp::temp2mulxyz (params->colorappearance.tempout, params->colorappearance.greenout, "Custom", Xwout, Zwout);
//viewing condition for surround
if (params->colorappearance.surround == "Average") {
@@ -319,59 +321,66 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh
bool needJ = (alg == 0 || alg == 1 || alg == 3);
bool needQ = (alg == 2 || alg == 3);
/*
//settings white point of output device - or illuminant viewing
if (settings->viewingdevice == 0) {
xwd = 96.42; //5000K
ywd = 100.0;
zwd = 82.52;
} else if (settings->viewingdevice == 1) {
xwd = 95.68; //5500
ywd = 100.0;
zwd = 92.15;
} else if (settings->viewingdevice == 2) {
xwd = 95.24; //6000
ywd = 100.0;
zwd = 100.81;
} else if (settings->viewingdevice == 3) {
xwd = 95.04; //6500
ywd = 100.0;
zwd = 108.88;
} else if (settings->viewingdevice == 4) {
xwd = 109.85; //tungsten
ywd = 100.0;
zwd = 35.58;
} else if (settings->viewingdevice == 5) {
xwd = 99.18; //fluo F2
ywd = 100.0;
zwd = 67.39;
} else if (settings->viewingdevice == 6) {
xwd = 95.04; //fluo F7
ywd = 100.0;
zwd = 108.75;
} else if (settings->viewingdevice == 7) {
xwd = 100.96; //fluo F11
ywd = 100.0;
zwd = 64.35;
}
*/
//settings white point of output device - or illuminant viewing
if (settings->viewingdevice == 0) {
xwd = 96.42; //5000K
ywd = 100.0;
zwd = 82.52;
} else if (settings->viewingdevice == 1) {
xwd = 95.68; //5500
ywd = 100.0;
zwd = 92.15;
} else if (settings->viewingdevice == 2) {
xwd = 95.24; //6000
ywd = 100.0;
zwd = 100.81;
} else if (settings->viewingdevice == 3) {
xwd = 95.04; //6500
ywd = 100.0;
zwd = 108.88;
} else if (settings->viewingdevice == 4) {
xwd = 109.85; //tungsten
ywd = 100.0;
zwd = 35.58;
} else if (settings->viewingdevice == 5) {
xwd = 99.18; //fluo F2
ywd = 100.0;
zwd = 67.39;
} else if (settings->viewingdevice == 6) {
xwd = 95.04; //fluo F7
ywd = 100.0;
zwd = 108.75;
} else if (settings->viewingdevice == 7) {
xwd = 100.96; //fluo F11
ywd = 100.0;
zwd = 64.35;
}
xwd = 100. * Xwout;
zwd = 100. * Zwout;
ywd = 100. / params->colorappearance.greenout;//approximation to simplify
//settings mean Luminance Y of output device or viewing
if (settings->viewingdevicegrey == 0) {
yb2 = 5.0;
} else if (settings->viewingdevicegrey == 1) {
yb2 = 10.0;
} else if (settings->viewingdevicegrey == 2) {
yb2 = 15.0;
} else if (settings->viewingdevicegrey == 3) {
yb2 = 18.0;
} else if (settings->viewingdevicegrey == 4) {
yb2 = 23.0;
} else if (settings->viewingdevicegrey == 5) {
yb2 = 30.0;
} else if (settings->viewingdevicegrey == 6) {
yb2 = 40.0;
}
/*
//settings mean Luminance Y of output device or viewing
if (settings->viewingdevicegrey == 0) {
yb2 = 5.0;
} else if (settings->viewingdevicegrey == 1) {
yb2 = 10.0;
} else if (settings->viewingdevicegrey == 2) {
yb2 = 15.0;
} else if (settings->viewingdevicegrey == 3) {
yb2 = 18.0;
} else if (settings->viewingdevicegrey == 4) {
yb2 = 23.0;
} else if (settings->viewingdevicegrey == 5) {
yb2 = 30.0;
} else if (settings->viewingdevicegrey == 6) {
yb2 = 40.0;
}
*/
yb2 = params->colorappearance.ybout;
//La and la2 = ambiant luminosity scene and viewing
la = double (params->colorappearance.adapscen);
@@ -1491,6 +1500,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int
float xwd, ywd, zwd;
int alg = 0;
bool algepd = false;
double Xwout, Zwout;
const bool epdEnabled = params->epd.enabled;
bool ciedata = (params->colorappearance.datacie && pW != 1) && ! ((params->colorappearance.tonecie && (epdEnabled)) || (params->sharpening.enabled && settings->autocielab && execsharp)
@@ -1498,6 +1508,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int
|| (params->impulseDenoise.enabled && settings->autocielab) || (params->colorappearance.badpixsl > 0 && settings->autocielab));
ColorTemp::temp2mulxyz (params->wb.temperature, params->wb.green, params->wb.method, Xw, Zw); //compute white Xw Yw Zw : white current WB
ColorTemp::temp2mulxyz (params->colorappearance.tempout, params->colorappearance.greenout, "Custom", Xwout, Zwout);
//viewing condition for surround
if (params->colorappearance.surround == "Average") {
@@ -1542,59 +1553,64 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int
algepd = true;
}
//settings white point of output device - or illuminant viewing
if (settings->viewingdevice == 0) {
xwd = 96.42f; //5000K
ywd = 100.0f;
zwd = 82.52f;
} else if (settings->viewingdevice == 1) {
xwd = 95.68f; //5500
ywd = 100.0f;
zwd = 92.15f;
} else if (settings->viewingdevice == 2) {
xwd = 95.24f; //6000
ywd = 100.0f;
zwd = 100.81f;
} else if (settings->viewingdevice == 3) {
xwd = 95.04f; //6500
ywd = 100.0f;
zwd = 108.88f;
} else if (settings->viewingdevice == 4) {
xwd = 109.85f; //tungsten
ywd = 100.0f;
zwd = 35.58f;
} else if (settings->viewingdevice == 5) {
xwd = 99.18f; //fluo F2
ywd = 100.0f;
zwd = 67.39f;
} else if (settings->viewingdevice == 6) {
xwd = 95.04f; //fluo F7
ywd = 100.0f;
zwd = 108.75f;
} else { /*if(settings->viewingdevice == 7) */
xwd = 100.96f; //fluo F11
ywd = 100.0f;
zwd = 64.35f;
}
//settings mean Luminance Y of output device or viewing
if (settings->viewingdevicegrey == 0) {
yb2 = 5.0f;
} else if (settings->viewingdevicegrey == 1) {
yb2 = 10.0f;
} else if (settings->viewingdevicegrey == 2) {
yb2 = 15.0f;
} else if (settings->viewingdevicegrey == 3) {
yb2 = 18.0f;
} else if (settings->viewingdevicegrey == 4) {
yb2 = 23.0f;
} else if (settings->viewingdevicegrey == 5) {
yb2 = 30.0f;
} else { /* if(settings->viewingdevicegrey == 6)*/
yb2 = 40.0f;
}
xwd = 100.f * Xwout;
zwd = 100.f * Zwout;
ywd = 100.f / params->colorappearance.greenout;//approximation to simplify
/*
//settings white point of output device - or illuminant viewing
if (settings->viewingdevice == 0) {
xwd = 96.42f; //5000K
ywd = 100.0f;
zwd = 82.52f;
} else if (settings->viewingdevice == 1) {
xwd = 95.68f; //5500
ywd = 100.0f;
zwd = 92.15f;
} else if (settings->viewingdevice == 2) {
xwd = 95.24f; //6000
ywd = 100.0f;
zwd = 100.81f;
} else if (settings->viewingdevice == 3) {
xwd = 95.04f; //6500
ywd = 100.0f;
zwd = 108.88f;
} else if (settings->viewingdevice == 4) {
xwd = 109.85f; //tungsten
ywd = 100.0f;
zwd = 35.58f;
} else if (settings->viewingdevice == 5) {
xwd = 99.18f; //fluo F2
ywd = 100.0f;
zwd = 67.39f;
} else if (settings->viewingdevice == 6) {
xwd = 95.04f; //fluo F7
ywd = 100.0f;
zwd = 108.75f;
} else {
xwd = 100.96f; //fluo F11
ywd = 100.0f;
zwd = 64.35f;
}
*/
yb2 = params->colorappearance.ybout;
/*
//settings mean Luminance Y of output device or viewing
if (settings->viewingdevicegrey == 0) {
yb2 = 5.0f;
} else if (settings->viewingdevicegrey == 1) {
yb2 = 10.0f;
} else if (settings->viewingdevicegrey == 2) {
yb2 = 15.0f;
} else if (settings->viewingdevicegrey == 3) {
yb2 = 18.0f;
} else if (settings->viewingdevicegrey == 4) {
yb2 = 23.0f;
} else if (settings->viewingdevicegrey == 5) {
yb2 = 30.0f;
} else {
yb2 = 40.0f;
}
*/
//La and la2 = ambiant luminosity scene and viewing
la = float (params->colorappearance.adapscen);
@@ -6585,7 +6601,7 @@ void ImProcFunctions::EPDToneMap (LabImage *lab, unsigned int Iterates, int skip
fwrite(L, N, sizeof(float), f);
fclose(f);*/
epd.CompressDynamicRange (L, sca / float(skip), edgest, Compression, DetailBoost, Iterates, rew);
epd.CompressDynamicRange (L, sca / float (skip), edgest, Compression, DetailBoost, Iterates, rew);
//Restore past range, also desaturate a bit per Mantiuk's Color correction for tone mapping.
float s = (1.0f + 38.7889f) * powf (Compression, 1.5856f) / (1.0f + 38.7889f * powf (Compression, 1.5856f));