Wavelet Improve Chroma with link contrast levels
This commit is contained in:
parent
62fd0a0401
commit
ad207e003c
@ -2416,6 +2416,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float *
|
||||
float effect = cp.bluwav;
|
||||
float offs = 1.f;
|
||||
float * beta = new float[Wlvl_L * Hlvl_L];
|
||||
|
||||
for (int co = 0; co < Hlvl_L * Wlvl_L; co++) {
|
||||
beta[co] = 1.f;
|
||||
}
|
||||
@ -2477,7 +2478,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float *
|
||||
|
||||
klev = (wavblcurve[lvl * 55.5f]);
|
||||
|
||||
// klev *= beta * 100.f / skip;
|
||||
// klev *= beta * 100.f / skip;
|
||||
klev *= 100.f / skip;
|
||||
boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false);
|
||||
|
||||
@ -2746,6 +2747,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float
|
||||
float effect = cp.bluwav;
|
||||
float offs = 1.f;
|
||||
float * beta = new float[Wlvl_ab * Hlvl_ab];
|
||||
|
||||
for (int co = 0; co < Wlvl_ab * Hlvl_ab; co++) {
|
||||
beta[co] = 1.f;
|
||||
}
|
||||
@ -3887,13 +3889,43 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f
|
||||
//to adjust increase contrast with local contrast
|
||||
bool useSkinControl = (skinprot != 0.f);
|
||||
|
||||
float mea[10];
|
||||
float effect = cp.sigmacol;
|
||||
float betaab = 1.f;
|
||||
float offs = 1.f;
|
||||
float alphaC = 1.f;
|
||||
|
||||
|
||||
|
||||
|
||||
float alphaC = (1024.f + 15.f * cpMul * cpChrom / 50.f) / 1024.f ;
|
||||
calceffect(level, meanab, sigmaab, mea, effect, offs);
|
||||
|
||||
for (int i = 0; i < W_ab * H_ab; i++) {
|
||||
float WavCab = std::fabs(WavCoeffs_ab[dir][i]);
|
||||
|
||||
if (WavCab < mea[0]) {
|
||||
betaab = 0.05f;
|
||||
} else if (WavCab < mea[1]) {
|
||||
betaab = 0.2f;
|
||||
} else if (WavCab < mea[2]) {
|
||||
betaab = 0.7f;
|
||||
} else if (WavCab < mea[3]) {
|
||||
betaab = 1.f; //standard
|
||||
} else if (WavCab < mea[4]) {
|
||||
betaab = 1.f;
|
||||
} else if (WavCab < mea[5]) {
|
||||
betaab = 0.8f; //+sigma
|
||||
} else if (WavCab < mea[6]) {
|
||||
betaab = 0.6f;
|
||||
} else if (WavCab < mea[7]) {
|
||||
betaab = 0.4f;
|
||||
} else if (WavCab < mea[8]) {
|
||||
betaab = 0.2f; // + 2 sigma
|
||||
} else if (WavCab < mea[9]) {
|
||||
betaab = 0.1f;
|
||||
} else {
|
||||
betaab = 0.0f;
|
||||
}
|
||||
|
||||
float scale = 1.f;
|
||||
|
||||
if (useSkinControl) {
|
||||
int ii = i / W_ab;
|
||||
int jj = i - ii * W_ab;
|
||||
@ -3901,7 +3933,6 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f
|
||||
float modhue = varhue[ii][jj];
|
||||
float modchro = varchrom[ii * 2][jj * 2];
|
||||
// hue chroma skin with initial lab data
|
||||
float scale = 1.f;
|
||||
|
||||
if (skinprot > 0.f) {
|
||||
Color::SkinSatCbdl2(LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); //0 for skin and extand
|
||||
@ -3910,9 +3941,10 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f
|
||||
scale = (scale == 1.f) ? factorHard : 1.f;
|
||||
}
|
||||
|
||||
alphaC = (1024.f + 15.f * cpMul * cpChrom * scale / 50.f) / 1024.f ;
|
||||
}
|
||||
|
||||
alphaC = (1024.f + 15.f * cpMul * cpChrom * betaab * scale / 50.f) / 1024.f ;
|
||||
|
||||
WavCoeffs_ab[dir][i] *= alphaC;
|
||||
}
|
||||
}
|
||||
|
@ -2426,7 +2426,7 @@ void Wavelet::CHmethodUpdateUI()
|
||||
if (!batchMode) {
|
||||
if (CHmethod->get_active_row_number() == 0) {
|
||||
CHSLmethod->show();
|
||||
sigmacol->show();
|
||||
// sigmacol->show();
|
||||
pastlev->hide();
|
||||
satlev->hide();
|
||||
chroma->hide();
|
||||
@ -2446,7 +2446,7 @@ void Wavelet::CHmethodUpdateUI()
|
||||
}
|
||||
} else if (CHmethod->get_active_row_number() == 1) {
|
||||
CHSLmethod->show();
|
||||
sigmacol->show();
|
||||
// sigmacol->show();
|
||||
pastlev->show();
|
||||
satlev->show();
|
||||
chroma->show();
|
||||
@ -2466,7 +2466,7 @@ void Wavelet::CHmethodUpdateUI()
|
||||
}
|
||||
} else {
|
||||
chro->show();
|
||||
sigmacol->hide();
|
||||
// sigmacol->hide();
|
||||
pastlev->hide();
|
||||
satlev->hide();
|
||||
chroma->hide();
|
||||
|
Loading…
x
Reference in New Issue
Block a user