@@ -699,7 +699,7 @@ struct local_params {
699
699
float decaycie;
700
700
float blurciemask;
701
701
float contciemask;
702
-
702
+ bool islogcie;
703
703
int noiselequal;
704
704
float noisechrodetail;
705
705
float bilat;
@@ -862,7 +862,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
862
862
// if (thre > 8.f || thre < 0.f) {//to avoid artifacts if user does not clear cache with new settings. Can be suppressed after
863
863
// thre = 2.f;
864
864
// }
865
- thre = LIM(thre, 0.f, 10 .0f);
865
+ thre = LIM(thre, 0.f, 15 .0f);
866
866
867
867
double local_x = locallab.spots.at(sp).loc.at(0) / 2000.0;
868
868
double local_y = locallab.spots.at(sp).loc.at(2) / 2000.0;
@@ -952,7 +952,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
952
952
lp.showmask_met = ll_Mask;
953
953
lp.showmaskciemet = llcieMask;
954
954
lp.fftcieMask = locallab.spots.at(sp).fftcieMask;
955
-
955
+ lp.islogcie = locallab.spots.at(sp).logcie;
956
956
lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llsoftMask == 0 && llColorMaskinv == 0 && llSHMaskinv == 0 && llColorMask == 0 && llExpMaskinv == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && lllogMask == 0 && ll_Mask == 0 && llcieMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
957
957
lp.enaColorMaskinv = locallab.spots.at(sp).enaColorMask && llColorMaskinv == 0 && llSHMaskinv == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && lllogMask == 0 && ll_Mask == 0 && llcieMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
958
958
lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llExpMaskinv == 0 && llSHMaskinv == 0 && llColorMask == 0 && llColorMaskinv == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && lllogMask == 0 && ll_Mask == 0 && llcieMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
@@ -9173,12 +9173,19 @@ void ImProcFunctions::transit_shapedetect2(int sp, float meantm, float stdtm, in
9173
9173
9174
9174
//parameters deltaE
9175
9175
//increase a bit lp.thr and lp.iterat and kL if HDR only with log encoding and CAM16 Jz
9176
- if (senstype == 11 || senstype == 31) {
9176
+ int limvarsens = 50;
9177
+ if ((senstype == 11 || (senstype == 31 && lp.islogcie)) && (varsens < limvarsens)) {
9177
9178
lp.thr *= 1.2f;
9178
9179
lp.iterat *= 1.2f;
9179
- kL *= 1.2f;
9180
+ kL /= 1.2f;
9181
+ } else if ((senstype == 11 || (senstype == 31 && lp.islogcie)) && (varsens >= limvarsens)) {
9182
+ lp.thr += 10.f;
9183
+ lp.thr = LIM(lp.thr, 0.f, 15.0f);
9184
+ lp.balance -= 2.3f;
9185
+ lp.balance = LIM(lp.balance, 0.05f, 2.5f);
9186
+ kL = lp.balance / SQR(327.68f);
9180
9187
}
9181
-
9188
+
9182
9189
const float mindE = 2.f + MINSCOPE * varsens * lp.thr;
9183
9190
const float maxdE = 5.f + MAXSCOPE * varsens * (1 + 0.1f * lp.thr);
9184
9191
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
@@ -9264,8 +9271,14 @@ void ImProcFunctions::transit_shapedetect2(int sp, float meantm, float stdtm, in
9264
9271
9265
9272
const float dE = rsob + std::sqrt(kab * (kch * chrodelta2 + kH * huedelta2) + kL * SQR(refL - maskptr->L[y][x]));
9266
9273
//reduction action with deltaE
9267
- const float reducdE = calcreducdE(dE, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, varsens);
9268
-
9274
+ float reducdE = calcreducdE(dE, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, varsens);
9275
+ // float reducdEL = reducdE;
9276
+ if ((senstype == 11 || ( senstype == 31 && lp.islogcie)) && (varsens >= limvarsens)) {
9277
+ int maxvarsens = 90;
9278
+ float ared = (1.f - reducdE) / (maxvarsens - limvarsens);
9279
+ float bred = 1.f - ared * maxvarsens;
9280
+ reducdE = ared * varsens + bred;
9281
+ }
9269
9282
float cli = (bufexpfin->L[y][x] - bufexporig->L[y][x]);
9270
9283
float cla = (bufexpfin->a[y][x] - bufexporig->a[y][x]);
9271
9284
float clb = (bufexpfin->b[y][x] - bufexporig->b[y][x]);
0 commit comments