Improve display datas Transmission map
This commit is contained in:
parent
9a982e6fc2
commit
43228efea6
@ -1032,6 +1032,9 @@ void Crop::update(int todo)
|
|||||||
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre,
|
LHutili, HHutili, cclocalcurve2, localcutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre,
|
||||||
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
|
if (parent->locallListener) {
|
||||||
|
parent->locallListener->minmaxChanged(maxCD, minCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve, lllocalcurve2,locallutili,
|
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve, lllocalcurve2,locallutili,
|
||||||
loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
|
@ -1233,7 +1233,7 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scale == 1) { //equalize last scale with darkness and lightness
|
if (scale == 1) { //equalize last scale with darkness and lightness of course acts on TM!
|
||||||
|
|
||||||
if (dar != 1.f || lig != 1.f) {
|
if (dar != 1.f || lig != 1.f) {
|
||||||
|
|
||||||
@ -1299,7 +1299,7 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (scal == 1) {
|
if (scal == 1) {//only if user select scal = 1
|
||||||
float kval = 1.f;
|
float kval = 1.f;
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel for
|
#pragma omp parallel for
|
||||||
@ -1425,6 +1425,10 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mean = 0.f;
|
||||||
|
stddv = 0.f;
|
||||||
|
mean_stddv2(luminance, mean, stddv, W_L, H_L, maxtr, mintr);//new calculation of mean...
|
||||||
|
|
||||||
float epsil = 0.1f;
|
float epsil = 0.1f;
|
||||||
|
|
||||||
mini = mean - vart * stddv;
|
mini = mean - vart * stddv;
|
||||||
@ -1446,6 +1450,14 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
delta = 1.0f;
|
delta = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float *copylum[H_L] ALIGNED16;
|
||||||
|
float *copylumBuffer = new float[H_L * W_L];
|
||||||
|
|
||||||
|
for (int i = 0; i < H_L; i++) {
|
||||||
|
copylum[i] = ©lumBuffer[i * W_L];
|
||||||
|
}
|
||||||
|
|
||||||
float cdfactor = (clipt * 32768.f) / delta;
|
float cdfactor = (clipt * 32768.f) / delta;
|
||||||
maxCD = -9999999.f;
|
maxCD = -9999999.f;
|
||||||
minCD = 9999999.f;
|
minCD = 9999999.f;
|
||||||
@ -1462,9 +1474,10 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
|
|
||||||
mean = 0.f;
|
mean = 0.f;
|
||||||
stddv = 0.f;
|
stddv = 0.f;
|
||||||
// I call mean_stddv2 instead of mean_stddv ==> logBetaGain
|
|
||||||
|
|
||||||
mean_stddv2(luminance, mean, stddv, W_L, H_L, maxtr, mintr);
|
mean_stddv2(luminance, mean, stddv, W_L, H_L, maxtr, mintr);
|
||||||
|
// printf("meanun=%f stdun=%f maxtr=%f mintr=%f\n", mean, stddv, maxtr, mintr);
|
||||||
|
|
||||||
float asig = 0.f, bsig = 0.f, amax = 0.f, bmax = 0.f, amin = 0.f, bmin = 0.f;
|
float asig = 0.f, bsig = 0.f, amax = 0.f, bmax = 0.f, amin = 0.f, bmin = 0.f;
|
||||||
const bool hasRetGainCurve = locRETgainCcurve && mean != 0.f && stddv != 0.f;
|
const bool hasRetGainCurve = locRETgainCcurve && mean != 0.f && stddv != 0.f;
|
||||||
|
|
||||||
@ -1515,6 +1528,8 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
gan = locRETgainCcurve[absciss]; //new gain function transmission
|
gan = locRETgainCcurve[absciss]; //new gain function transmission
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//but we don't update mean stddv for display only...
|
||||||
|
copylum[i][j] = gan * luminance[i][j];//update datas for display
|
||||||
float cd = gan * cdfactor * luminance[i][j] + offse;
|
float cd = gan * cdfactor * luminance[i][j] + offse;
|
||||||
|
|
||||||
cdmax = cd > cdmax ? cd : cdmax;
|
cdmax = cd > cdmax ? cd : cdmax;
|
||||||
@ -1532,7 +1547,14 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
minCD = minCD < cdmin ? minCD : cdmin;
|
minCD = minCD < cdmin ? minCD : cdmin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mean = 0.f;
|
||||||
|
stddv = 0.f;
|
||||||
|
|
||||||
|
mean_stddv2(copylum, mean, stddv, W_L, H_L, maxtr, mintr);
|
||||||
|
delete [] copylumBuffer;
|
||||||
|
copylumBuffer = nullptr;
|
||||||
|
|
||||||
|
// printf("mean=%f std=%f maxtr=%f mintr=%f\n", mean, stddv, maxtr, mintr);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
@ -1553,11 +1575,12 @@ void ImProcFunctions::MSRLocal(int sp, bool fftw, int lum, float** reducDE, LabI
|
|||||||
loc, bufreti, bufmask, buforig, buforigmas, multiThread);
|
loc, bufreti, bufmask, buforig, buforigmas, multiThread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mask does not interfered with datas displayed
|
||||||
|
|
||||||
Tmean = mean;
|
Tmean = mean;
|
||||||
Tsigma = stddv;
|
Tsigma = stddv;
|
||||||
Tmin = mintr;
|
Tmin = mintr;
|
||||||
Tmax = maxtr;
|
Tmax = maxtr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user