Enable ToneMapping when Cam02 enabled and Ciecam disabled (#7190)

This commit is contained in:
Desmis 2024-09-17 08:30:11 +02:00 committed by GitHub
parent 348c8e8894
commit 7cdfa941c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 22 additions and 19 deletions

View File

@ -812,9 +812,11 @@ void Crop::update(int todo)
}
const bool needstransform = parent->ipf.needsTransform(skips(parent->fw, skip), skips(parent->fh, skip), parent->imgsrc->getRotateDegree(), parent->imgsrc->getMetaData());
const bool cam02 = params.colorappearance.modelmethod == "02" && params.colorappearance.enabled;
// transform
// if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled)) {
if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && params.colorappearance.modelmethod != "02")) {
if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !cam02)) {
if (!transCrop) {
transCrop = new Imagefloat(cropw, croph);
}
@ -836,7 +838,7 @@ void Crop::update(int todo)
}
// if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) {
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && params.colorappearance.modelmethod != "02") {
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !cam02) {
const int W = baseCrop->getWidth();
const int H = baseCrop->getHeight();
@ -1333,7 +1335,7 @@ void Crop::update(int todo)
parent->ipf.labColorCorrectionRegions(labnCrop);
// if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (params.colorappearance.modelmethod != "02")) {
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!cam02)) {
parent->ipf.EPDToneMap(labnCrop, 0, skip);
}
@ -1341,7 +1343,7 @@ void Crop::update(int todo)
// for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled
if (skip == 1) {
// if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) {
if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) {
if ((params.colorappearance.enabled && !settings->autocielab) || (!cam02)) {
parent->ipf.impulsedenoise(labnCrop);
parent->ipf.defringe(labnCrop);
}
@ -1349,7 +1351,7 @@ void Crop::update(int todo)
parent->ipf.MLsharpen(labnCrop);
// if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) {
if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) {
if ((params.colorappearance.enabled && !settings->autocielab) || (!cam02)) {
parent->ipf.MLmicrocontrast(labnCrop);
parent->ipf.sharpening(labnCrop, params.sharpening, parent->sharpMask);
}
@ -1359,7 +1361,7 @@ void Crop::update(int todo)
if (params.dirpyrequalizer.cbdlMethod == "aft") {
// if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled))) {
if (((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02"))) {
if (((params.colorappearance.enabled && !settings->autocielab) || (!cam02))) {
parent->ipf.dirpyrequalizer(labnCrop, skip);
// parent->ipf.Lanczoslab (labnCrop,labnCrop , 1.f/skip);
}

View File

@ -875,9 +875,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
// Remove transformation if unneeded
bool needstransform = ipf.needsTransform(fw, fh, imgsrc->getRotateDegree(), imgsrc->getMetaData());
const bool cam02 = params->colorappearance.modelmethod == "02" && params->colorappearance.enabled;
// if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled))) {
if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && params->colorappearance.modelmethod != "02"))) {
if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !cam02))) {
// Forking the image
assert(oprevi);
Imagefloat *op = oprevi;
@ -900,7 +900,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
}
// if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled) {
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && params->colorappearance.modelmethod != "02") {
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !cam02) {
const int W = oprevi->getWidth();
const int H = oprevi->getHeight();
LabImage labcbdl(W, H);
@ -1845,13 +1845,13 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
ipf.labColorCorrectionRegions(nprevl);
// if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!params->colorappearance.enabled)) {
if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (params->colorappearance.modelmethod != "02")) {
if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!cam02)) {
ipf.EPDToneMap(nprevl, 0, scale);
}
if (params->dirpyrequalizer.cbdlMethod == "aft") {
// if (((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled))) {
if (((params->colorappearance.enabled && !settings->autocielab) || (params->colorappearance.modelmethod != "02"))) {
if (((params->colorappearance.enabled && !settings->autocielab) || (!cam02))) {
ipf.dirpyrequalizer(nprevl, scale);
}
}

View File

@ -1516,9 +1516,10 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT
bool cam02 = params.colorappearance.modelmethod == "02" && params.colorappearance.enabled;
// if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || !params.colorappearance.enabled) {
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || params.colorappearance.modelmethod != "02") {
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || !cam02) {
ipf.EPDToneMap (labView, 5, 6);
}

View File

@ -1007,7 +1007,6 @@ private:
}
}
}
//colorappearance.modelmethod == "02"
bool execcam = false;
//execcam => work around for pre-ciecam in LA: about 0.1 second
@ -1526,9 +1525,10 @@ private:
ipf.chromiLuminanceCurve(nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy);
const bool cam02 = params.colorappearance.modelmethod == "02" && params.colorappearance.enabled;
// if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (params.colorappearance.modelmethod != "02")) {
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!cam02)) {
ipf.EPDToneMap(labView, 0, 1);
}
@ -1539,7 +1539,7 @@ private:
// for all treatments Defringe, Sharpening, Contrast detail ,Microcontrast they are activated if "CIECAM" function are disabled
// if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) {
if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) {
if ((params.colorappearance.enabled && !settings->autocielab) || (!cam02)) {
ipf.impulsedenoise(labView);
ipf.defringe(labView);
}
@ -1550,13 +1550,13 @@ private:
if (params.sharpenMicro.enabled) {
// if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) {
if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) {
if ((params.colorappearance.enabled && !settings->autocielab) || (!cam02)) {
ipf.MLmicrocontrast(labView); //!params.colorappearance.sharpcie
}
}
// if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) && params.sharpening.enabled) {
if (((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) && params.sharpening.enabled) {
if (((params.colorappearance.enabled && !settings->autocielab) || (!cam02)) && params.sharpening.enabled) {
ipf.sharpening(labView, params.sharpening);
}
@ -1566,7 +1566,7 @@ private:
// directional pyramid wavelet
if (params.dirpyrequalizer.cbdlMethod == "aft") {
// if ((params.colorappearance.enabled && !settings->autocielab) || !params.colorappearance.enabled) {
if ((params.colorappearance.enabled && !settings->autocielab) || params.colorappearance.modelmethod != "02") {
if ((params.colorappearance.enabled && !settings->autocielab) || !cam02) {
ipf.dirpyrequalizer(labView, 1); //TODO: this is the luminance tonecurve, not the RGB one
}
}
@ -1945,7 +1945,7 @@ private:
}
// bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && !params.colorappearance.enabled;
bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && params.colorappearance.modelmethod != "02";
bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && !cam02;
///////////// Custom output gamma has been removed, the user now has to create
///////////// a new output profile with the ICCProfileCreator