capture sharpening: Do not trigger demosaic when toggling mask preview, #5412

This commit is contained in:
Ingo Weyrich 2019-08-28 19:26:09 +02:00
parent ba8c3d15bf
commit d3ec7f5277
4 changed files with 5 additions and 10 deletions

View File

@ -1364,7 +1364,7 @@ ProcEvent ImProcCoordinator::setSharpMask (bool sharpMask)
if (this->sharpMask != sharpMask) {
sharpMaskChanged = true;
this->sharpMask = sharpMask;
return params->pdsharpening.enabled ? rtengine::EvPdShrEnabled : rtengine::EvShrEnabled;
return params->pdsharpening.enabled ? rtengine::EvPdShrMaskToggled : rtengine::EvShrEnabled;
} else {
sharpMaskChanged = false;
return rtengine::EvShrEnabled;

View File

@ -521,6 +521,7 @@ enum ProcEventCode {
EvRGBEnabled = 491,
EvLEnabled = 492,
EvPdShrEnabled = 493,
EvPdShrMaskToggled = 494,
NUMOFEVENTS

View File

@ -5032,13 +5032,11 @@ BENCHFUN
Color::RGB2L(redVals[i], greenVals[i], blueVals[i], L[i], xyz_rgb, W);
}
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(0.1);
}
array2D<float>& blend = red; // red will be overridden anyway => we can use its buffer to store the blend mask
buildBlendMask(L, blend, W, H, contrast, 1.f, sharpeningParams.autoContrast);
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(0.2);
}
conrastThreshold = contrast * 100.f;
@ -5051,7 +5049,6 @@ BENCHFUN
}
}
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(1.0);
}
return;
@ -5070,14 +5067,12 @@ BENCHFUN
Color::RGB2Y(redVals[i], greenVals[i], blueVals[i], YOld[i], YNew[i], sharpeningParams.gamma, W);
}
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(0.1);
}
// calculate contrast based blend factors to reduce sharpening in regions with low contrast
JaggedArray<float> blend(W, H);
buildBlendMask(L, blend, W, H, contrast, 1.f, sharpeningParams.autoContrast);
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(0.2);
}
conrastThreshold = contrast * 100.f;
@ -5088,7 +5083,6 @@ BENCHFUN
ImProcFunctions ipf(&dummy);
ipf.deconvsharpening(YNew, tmp, blend, W, H, sharpeningParams, 1.0);
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(0.9);
}
StopWatch Stop2("Y2RGB");
@ -5117,7 +5111,6 @@ BENCHFUN
}
Stop2.stop();
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(1.0);
}
}

View File

@ -519,8 +519,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
HDR, // EvTMFattalAmount
ALLNORAW, // EvWBEnabled
RGBCURVE, // EvRGBEnabled
LUMINANCECURVE, // EvLEnabled
DEMOSAIC // EvPdShrEnabled
LUMINANCECURVE, // EvLEnabled
DEMOSAIC, // EvPdShrEnabled
ALLNORAW // EvPdShrMaskToggled
};