Others fix bad behavior Dynamic range and exposure
This commit is contained in:
parent
b35e0d8269
commit
a6a8ee0e40
@ -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);
|
const bool exec = (lp.expmet == 1 && linear > 0.f && lp.laplacexp > 0.1f);
|
||||||
|
|
||||||
if(!exec) {//for standard exposure
|
if(!exec) {//for standard exposure
|
||||||
|
|
||||||
const float cexp_scale = std::pow(2.f, lp.expcomp);
|
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 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;
|
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 {
|
} 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.expcomp != 0.f ) { // || lp.laplacexp > 0.1f
|
||||||
if(lp.laplacexp <= 0.1f) {
|
if(lp.laplacexp <= 0.1f) {
|
||||||
lp.laplacexp = 0.2f; //force to use Laplacian wth very small values
|
lp.laplacexp = 0.2f; //force to use Laplacian wth very small values
|
||||||
|
@ -3570,10 +3570,14 @@ void LocallabExposure::updateGUIToMode(const modeType new_type)
|
|||||||
fatanchor->show();
|
fatanchor->show();
|
||||||
|
|
||||||
// Specific Simple mode widgets are shown in Normal mode
|
// Specific Simple mode widgets are shown in Normal mode
|
||||||
|
softradiusexp->hide();
|
||||||
|
blurexpde->hide();
|
||||||
|
|
||||||
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
|
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
|
||||||
expgradexp->show();
|
expgradexp->show();
|
||||||
softradiusexp->show();
|
softradiusexp->show();
|
||||||
exprecove->show();
|
exprecove->show();
|
||||||
|
blurexpde->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
expmaskexp->show();
|
expmaskexp->show();
|
||||||
@ -3583,6 +3587,7 @@ void LocallabExposure::updateGUIToMode(const modeType new_type)
|
|||||||
|
|
||||||
case Expert:
|
case Expert:
|
||||||
// Show widgets hidden in Normal and Simple mode
|
// Show widgets hidden in Normal and Simple mode
|
||||||
|
structexp->hide();
|
||||||
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
|
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
|
||||||
structexp->show();
|
structexp->show();
|
||||||
}
|
}
|
||||||
@ -3591,11 +3596,15 @@ void LocallabExposure::updateGUIToMode(const modeType new_type)
|
|||||||
norm->show();
|
norm->show();
|
||||||
fatlevel->show();
|
fatlevel->show();
|
||||||
fatanchor->show();
|
fatanchor->show();
|
||||||
|
softradiusexp->hide();
|
||||||
|
blurexpde->hide();
|
||||||
|
|
||||||
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
|
if (!inversex->get_active()) { // Keep widget hidden when invers is toggled
|
||||||
expgradexp->show();
|
expgradexp->show();
|
||||||
softradiusexp->show();
|
softradiusexp->show();
|
||||||
exprecove->show();
|
exprecove->show();
|
||||||
|
blurexpde->show();
|
||||||
|
|
||||||
}
|
}
|
||||||
if (enaExpMask->get_active()) {
|
if (enaExpMask->get_active()) {
|
||||||
maskusablee->show();
|
maskusablee->show();
|
||||||
@ -3818,6 +3827,8 @@ void LocallabExposure::updateExposureGUI3()
|
|||||||
reparexp->hide();
|
reparexp->hide();
|
||||||
expfat->hide();
|
expfat->hide();
|
||||||
exppde->hide();
|
exppde->hide();
|
||||||
|
structexp->hide();
|
||||||
|
blurexpde->hide();
|
||||||
|
|
||||||
// Manage specific case where expMethod is different from 0
|
// Manage specific case where expMethod is different from 0
|
||||||
if (expMethod->get_active_row_number() > 0) {
|
if (expMethod->get_active_row_number() > 0) {
|
||||||
@ -3843,11 +3854,20 @@ void LocallabExposure::updateExposureGUI3()
|
|||||||
expfat->show();
|
expfat->show();
|
||||||
exppde->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();
|
softradiusexp->show();
|
||||||
expgradexp->show();
|
expgradexp->show();
|
||||||
exprecove->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();
|
reparexp->show();
|
||||||
|
|
||||||
showmaskexpMethodinv->hide();
|
showmaskexpMethodinv->hide();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user