Try to solved iplab2rgb ipwavelet partialpasted retinex

This commit is contained in:
Desmis
2016-02-01 10:55:34 +01:00
parent 85e735153d
commit fea35baf69
5 changed files with 22 additions and 5 deletions

View File

@@ -386,6 +386,14 @@ Image16* ImProcFunctions::lab2rgb16b (LabImage* lab, int cx, int cy, int cw, int
Image16* image = new Image16 (cw, ch);
float p1, p2, p3, p4, p5, p6; //primaries
//default primaries
p1 = 0.7347; //Prophoto primaries
p2 = 0.2653;
p3 = 0.1596;
p4 = 0.8404;
p5 = 0.0366;
p6 = 0.0001;
//double ga0,ga1,ga2,ga3,ga4,ga5=0.0,ga6=0.0;//gamma parameters
double g_a0, g_a1, g_a2, g_a3, g_a4, g_a5; //gamma parameters
double pwr;

View File

@@ -2032,7 +2032,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float *
if(cp.lip3 && cp.lipp) {
// comparaison betwwen pixel and neighbours
float kneigh, somm;
float kneigh = 38.f;
float somm = 50.f;
if(cp.neigh == 0) {
kneigh = 38.f;
@@ -3191,7 +3192,9 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit
float scale = 1.f;
float scale2 = 1.f;
float LL100, LL100res, LL100init, kH[maxlvl];
float LL100, LL100res, LL100init;// kH[maxlvl];
float *kH = new float [maxlvl];//allocate memory
int ii = i / W_L;
int jj = i - ii * W_L;
float LL = labco->L[ii * 2][jj * 2];
@@ -3307,6 +3310,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit
kLlev = alpha;
}
delete [] kH;
WavCoeffs_L[dir][i] *= (kLlev);
}
}

View File

@@ -2609,17 +2609,21 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol
if (!pedited || pedited->icm.outputIntent) {
Glib::ustring intent;
switch (icm.outputIntent) {
default:
case RI_PERCEPTUAL:
intent = "Perceptual";
break;
case RI_RELATIVE:
intent = "Relative";
break;
case RI_SATURATION:
intent = "Saturation";
break;
case RI_ABSOLUTE:
intent = "Absolute";
break;
@@ -4110,7 +4114,7 @@ int ProcParams::load (Glib::ustring fname, ParamsEdited* pedited)
if (keyFile.has_key ("Retinex", "Radius")) {
sh.radius = keyFile.get_integer ("Retinex", "Radius");
retinex.radius = keyFile.get_integer ("Retinex", "Radius");
if (pedited) {
pedited->retinex.radius = true;
@@ -5845,6 +5849,7 @@ int ProcParams::load (Glib::ustring fname, ParamsEdited* pedited)
if (keyFile.has_key ("Color Management", "OutputProfileIntent")) {
Glib::ustring intent = keyFile.get_string ("Color Management", "OutputProfileIntent");
if (intent == "Perceptual") {
icm.outputIntent = RI_PERCEPTUAL;
} else if (intent == "Relative") {