Others fix bad behavior Dynamic range and exposure

This commit is contained in:
Desmis 2021-06-19 10:36:30 +02:00
parent b35e0d8269
commit a6a8ee0e40
2 changed files with 27 additions and 2 deletions

View File

@ -3003,6 +3003,7 @@ void ImProcFunctions::exlabLocal(local_params& lp, float strlap, int bfh, int bf
const bool exec = (lp.expmet == 1 && linear > 0.f && lp.laplacexp > 0.1f);
if(!exec) {//for standard exposure
const float cexp_scale = std::pow(2.f, lp.expcomp);
const float ccomp = (rtengine::max(0.f, lp.expcomp) + 1.f) * lp.hlcomp / 100.f;
const float cshoulder = ((maxran / rtengine::max(1.0f, cexp_scale)) * (lp.hlcompthr / 200.f)) + 0.1f;
@ -14896,6 +14897,10 @@ void ImProcFunctions::Lab_Local(
} else {
if (lp.expcomp == 0.f && (lp.linear > 0.01f && lp.laplacexp > 0.1f)) {
lp.expcomp = 0.001f;// to enabled
}
if (lp.expcomp != 0.f ) { // || lp.laplacexp > 0.1f
if(lp.laplacexp <= 0.1f) {
lp.laplacexp = 0.2f; //force to use Laplacian wth very small values

View File

@ -3570,10 +3570,14 @@ void LocallabExposure::updateGUIToMode(const modeType new_type)
fatanchor->show();
// Specific Simple mode widgets are shown in Normal mode
softradiusexp->hide();
blurexpde->hide();
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
expgradexp->show();
softradiusexp->show();
exprecove->show();
blurexpde->show();
}
expmaskexp->show();
@ -3583,6 +3587,7 @@ void LocallabExposure::updateGUIToMode(const modeType new_type)
case Expert:
// Show widgets hidden in Normal and Simple mode
structexp->hide();
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
structexp->show();
}
@ -3591,11 +3596,15 @@ void LocallabExposure::updateGUIToMode(const modeType new_type)
norm->show();
fatlevel->show();
fatanchor->show();
softradiusexp->hide();
blurexpde->hide();
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
expgradexp->show();
softradiusexp->show();
exprecove->show();
blurexpde->show();
}
if (enaExpMask->get_active()) {
maskusablee->show();
@ -3818,6 +3827,8 @@ void LocallabExposure::updateExposureGUI3()
reparexp->hide();
expfat->hide();
exppde->hide();
structexp->hide();
blurexpde->hide();
// Manage specific case where expMethod is different from 0
if (expMethod->get_active_row_number() > 0) {
@ -3843,11 +3854,20 @@ void LocallabExposure::updateExposureGUI3()
expfat->show();
exppde->show();
if (mode == Expert || mode == Normal) { // Keep widgets hidden in Simple mode
if (mode == Normal) { // Keep widgets hidden in Simple mode
softradiusexp->show();
expgradexp->show();
exprecove->show();
blurexpde->show();
}
if (mode == Expert) { // Keep widgets hidden in Simple mode
softradiusexp->show();
expgradexp->show();
exprecove->show();
structexp->show();
blurexpde->show();
}
reparexp->show();
showmaskexpMethodinv->hide();