"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "rtengine/simpleprocess.cc" between
rawtherapee-5.6.tar.xz and rawtherapee-5.7.tar.xz

About: RawTherapee is a powerful cross-platform raw image processing program.

simpleprocess.cc  (rawtherapee-5.6.tar.xz):simpleprocess.cc  (rawtherapee-5.7.tar.xz)
skipping to change at line 17 skipping to change at line 17
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* RawTherapee is distributed in the hope that it will be useful, * RawTherapee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#include "rtengine.h" #include "rtengine.h"
#include "colortemp.h" #include "colortemp.h"
#include "imagesource.h" #include "imagesource.h"
#include "improcfun.h" #include "improcfun.h"
#include "curves.h" #include "curves.h"
#include "iccstore.h" #include "iccstore.h"
#include "clutstore.h" #include "clutstore.h"
#include "processingjob.h" #include "processingjob.h"
#include "procparams.h" #include "procparams.h"
skipping to change at line 211 skipping to change at line 211
// MyTime t1,t2; // MyTime t1,t2;
// t1.set(); // t1.set();
ipf_p.reset (new ImProcFunctions (&params, true)); ipf_p.reset (new ImProcFunctions (&params, true));
ImProcFunctions &ipf = * (ipf_p.get()); ImProcFunctions &ipf = * (ipf_p.get());
imgsrc->setCurrentFrame (params.raw.bayersensor.imageNum); imgsrc->setCurrentFrame (params.raw.bayersensor.imageNum);
imgsrc->preprocess ( params.raw, params.lensProf, params.coarse, params. dirpyrDenoise.enabled); imgsrc->preprocess ( params.raw, params.lensProf, params.coarse, params. dirpyrDenoise.enabled);
// After preprocess, run film negative processing if enabled
if ((imgsrc->getSensorType() == ST_BAYER || (imgsrc->getSensorType() ==
ST_FUJI_XTRANS)) && params.filmNegative.enabled) {
imgsrc->filmNegativeProcess (params.filmNegative);
}
if (pl) { if (pl) {
pl->setProgress (0.20); pl->setProgress (0.20);
} }
bool autoContrast = imgsrc->getSensorType() == ST_BAYER ? params.raw.bay ersensor.dualDemosaicAutoContrast : params.raw.xtranssensor.dualDemosaicAutoCont rast; bool autoContrast = imgsrc->getSensorType() == ST_BAYER ? params.raw.bay ersensor.dualDemosaicAutoContrast : params.raw.xtranssensor.dualDemosaicAutoCont rast;
double contrastThreshold = imgsrc->getSensorType() == ST_BAYER ? params. raw.bayersensor.dualDemosaicContrast : params.raw.xtranssensor.dualDemosaicContr ast; double contrastThreshold = imgsrc->getSensorType() == ST_BAYER ? params. raw.bayersensor.dualDemosaicContrast : params.raw.xtranssensor.dualDemosaicContr ast;
imgsrc->demosaic (params.raw, autoContrast, contrastThreshold); imgsrc->demosaic (params.raw, autoContrast, contrastThreshold);
if (pl) { if (pl) {
pl->setProgress (0.30); pl->setProgress (0.30);
skipping to change at line 1062 skipping to change at line 1067
bool clcutili; bool clcutili;
CurveFactory::curveCL (clcutili, params.labCurve.clcurve, clcurve, 1); CurveFactory::curveCL (clcutili, params.labCurve.clcurve, clcurve, 1);
bool ccutili, cclutili; bool ccutili, cclutili;
CurveFactory::complexsgnCurve (autili, butili, ccutili, cclutili, params .labCurve.acurve, params.labCurve.bcurve, params.labCurve.cccurve, CurveFactory::complexsgnCurve (autili, butili, ccutili, cclutili, params .labCurve.acurve, params.labCurve.bcurve, params.labCurve.cccurve,
params.labCurve.lccurve, curve1, curve2, satcurve, lhskcurve, 1); params.labCurve.lccurve, curve1, curve2, satcurve, lhskcurve, 1);
ipf.chromiLuminanceCurve (nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutil i, clcutili, dummy, dummy); ipf.chromiLuminanceCurve (nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutil i, clcutili, dummy, dummy);
if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
ipf.EPDToneMap (labView, 5, 1); ipf.EPDToneMap (labView, 0, 1);
} }
ipf.vibrance (labView); ipf.vibrance (labView);
ipf.labColorCorrectionRegions(labView); ipf.labColorCorrectionRegions(labView);
if ((params.colorappearance.enabled && !settings->autocielab) || (!param s.colorappearance.enabled)) { if ((params.colorappearance.enabled && !settings->autocielab) || (!param s.colorappearance.enabled)) {
ipf.impulsedenoise (labView); ipf.impulsedenoise (labView);
} }
// for all treatments Defringe, Sharpening, Contrast detail ,Microcontra st they are activated if "CIECAM" function are disabled // for all treatments Defringe, Sharpening, Contrast detail ,Microcontra st they are activated if "CIECAM" function are disabled
skipping to change at line 1171 skipping to change at line 1176
E_V += params.toneCurve.expcomp;// exposure compensation in tone curve ==> direct EV E_V += params.toneCurve.expcomp;// exposure compensation in tone curve ==> direct EV
E_V += log2 (params.raw.expos); // exposure raw white point ; lo g2 ==> linear to EV E_V += log2 (params.raw.expos); // exposure raw white point ; lo g2 ==> linear to EV
adap = powf (2.f, E_V - 3.f); //cd / m2 adap = powf (2.f, E_V - 3.f); //cd / m2
} }
LUTf CAMBrightCurveJ; LUTf CAMBrightCurveJ;
LUTf CAMBrightCurveQ; LUTf CAMBrightCurveQ;
float CAMMean = NAN; float CAMMean = NAN;
float d, dj, yb; float d, dj, yb;
ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, &params, c ustomColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, &params, c ustomColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0, 1, true, d, dj, yb, 1);
} }
delete cieView; delete cieView;
cieView = nullptr; cieView = nullptr;
// end tile processing...??? // end tile processing...???
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (pl) { if (pl) {
skipping to change at line 1309 skipping to change at line 1314
// Setting the output curve to readyImg // Setting the output curve to readyImg
if (customGamma) { if (customGamma) {
if (!useLCMS) { if (!useLCMS) {
// use corrected sRGB profile in order to apply a good TRC if pr esent, otherwise use LCMS2 profile generated by lab2rgb16 w/ gamma // use corrected sRGB profile in order to apply a good TRC if pr esent, otherwise use LCMS2 profile generated by lab2rgb16 w/ gamma
ProfileContent pc (jprof); ProfileContent pc (jprof);
readyImg->setOutputProfile (pc.getData().c_str(), pc.getData().s ize()); readyImg->setOutputProfile (pc.getData().c_str(), pc.getData().s ize());
} }
} else { } else {
// use the selected output profile if present, otherwise use LCMS2 p rofile generate by lab2rgb16 w/ gamma // use the selected output profile if present, otherwise use LCMS2 p rofile generate by lab2rgb16 w/ gamma
if (params.icm.outputProfile != "" && params.icm.outputProfile != Co lorManagementParams::NoICMString) { if (!params.icm.outputProfile.empty() && params.icm.outputProfile != ColorManagementParams::NoICMString) {
// if ICCStore::getInstance()->getProfile send back an object, t hen ICCStore::getInstance()->getContent will do too // if ICCStore::getInstance()->getProfile send back an object, t hen ICCStore::getInstance()->getContent will do too
cmsHPROFILE jprof = ICCStore::getInstance()->getProfile (params. icm.outputProfile); //get outProfile cmsHPROFILE jprof = ICCStore::getInstance()->getProfile (params. icm.outputProfile); //get outProfile
if (jprof == nullptr) { if (jprof == nullptr) {
if (settings->verbose) { if (settings->verbose) {
printf ("\"%s\" ICC output profile not found!\n - use LC MS2 substitution\n", params.icm.outputProfile.c_str()); printf ("\"%s\" ICC output profile not found!\n - use LC MS2 substitution\n", params.icm.outputProfile.c_str());
} }
} else { } else {
if (settings->verbose) { if (settings->verbose) {
 End of changes. 5 change blocks. 
4 lines changed or deleted 10 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)