From b1af4b8e4d4fda61e187f3a1b92c7467ed10d5f9 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 20 Mar 2020 10:01:16 +0100 Subject: [PATCH] Format rawimagesource --- rtengine/rawimagesource.cc | 332 ++++++++++++++++++------------------- 1 file changed, 159 insertions(+), 173 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 6fd59583d..75088a07c 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -55,9 +55,9 @@ namespace { -void rotateLine(const float* const line, rtengine::PlanarPtr &channel, const int tran, const int i, const int w, const int h) +void rotateLine (const float* const line, rtengine::PlanarPtr &channel, const int tran, const int i, const int w, const int h) { - switch (tran & TR_ROT) { + switch(tran & TR_ROT) { case TR_R180: for (int j = 0; j < w; j++) { channel(h - 1 - i, w - 1 - j) = line[j]; @@ -87,15 +87,15 @@ void rotateLine(const float* const line, rtengine::PlanarPtr &channel, co } } -void transLineStandard(const float* const red, const float* const green, const float* const blue, const int i, rtengine::Imagefloat* const image, const int tran, const int imwidth, const int imheight) +void transLineStandard (const float* const red, const float* const green, const float* const blue, const int i, rtengine::Imagefloat* const image, const int tran, const int imwidth, const int imheight) { // conventional CCD coarse rotation - rotateLine(red, image->r, tran, i, imwidth, imheight); - rotateLine(green, image->g, tran, i, imwidth, imheight); - rotateLine(blue, image->b, tran, i, imwidth, imheight); + rotateLine (red, image->r, tran, i, imwidth, imheight); + rotateLine (green, image->g, tran, i, imwidth, imheight); + rotateLine (blue, image->b, tran, i, imwidth, imheight); } -void transLineFuji(const float* const red, const float* const green, const float* const blue, const int i, rtengine::Imagefloat* const image, const int tran, const int imheight, const int fw) +void transLineFuji (const float* const red, const float* const green, const float* const blue, const int i, rtengine::Imagefloat* const image, const int tran, const int imheight, const int fw) { // Fuji SuperCCD rotation + coarse rotation @@ -104,7 +104,7 @@ void transLineFuji(const float* const red, const float* const green, const float int h = (imheight - fw) * 2 + 1; int end = min(h + fw - i, w - fw + i); - switch (tran & TR_ROT) { + switch(tran & TR_ROT) { case TR_R180: for (int j = start; j < end; j++) { int y = i + j - fw; @@ -169,7 +169,7 @@ void transLineD1x (const float* const red, const float* const green, const float // We have to do vertical interpolation for the 'missing' rows // We do that in combination with coarse rotation - switch (tran & TR_ROT) { + switch(tran & TR_ROT) { case TR_R180: // rotate 180 degree for (int j = 0; j < imwidth; j++) { image->r(2 * (imheight - 1 - i), imwidth - 1 - j) = red[j]; @@ -367,9 +367,9 @@ void transLineD1x (const float* const red, const float* const green, const float case TR_NONE: // no coarse rotation default: - rotateLine(red, image->r, tran, 2 * i, imwidth, imheight); - rotateLine(green, image->g, tran, 2 * i, imwidth, imheight); - rotateLine(blue, image->b, tran, 2 * i, imwidth, imheight); + rotateLine (red, image->r, tran, 2 * i, imwidth, imheight); + rotateLine (green, image->g, tran, 2 * i, imwidth, imheight); + rotateLine (blue, image->b, tran, 2 * i, imwidth, imheight); if (i == 1 || i == 2) { // linear interpolation for (int j = 0; j < imwidth; j++) { @@ -423,7 +423,7 @@ void transLineD1x (const float* const red, const float* const green, const float namespace rtengine { -RawImageSource::RawImageSource() +RawImageSource::RawImageSource () : ImageSource() , W(0), H(0) , plistener(nullptr) @@ -465,7 +465,6 @@ RawImageSource::RawImageSource() { embProfile = nullptr; rgbSourceModified = false; - for (int i = 0; i < 4; ++i) { psRedBrightness[i] = psGreenBrightness[i] = psBlueBrightness[i] = 1.f; } @@ -473,7 +472,7 @@ RawImageSource::RawImageSource() //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -RawImageSource::~RawImageSource() +RawImageSource::~RawImageSource () { delete idata; @@ -490,11 +489,11 @@ RawImageSource::~RawImageSource() } if (camProfile) { - cmsCloseProfile(camProfile); + cmsCloseProfile (camProfile); } if (embProfile) { - cmsCloseProfile(embProfile); + cmsCloseProfile (embProfile); } } @@ -520,7 +519,7 @@ int RawImageSource::getRotateDegree() const //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::transformRect(const PreviewProps &pp, int tran, int &ssx1, int &ssy1, int &width, int &height, int &fw) +void RawImageSource::transformRect (const PreviewProps &pp, int tran, int &ssx1, int &ssy1, int &width, int &height, int &fw) { int pp_x = pp.getX() + border; int pp_y = pp.getY() + border; @@ -641,7 +640,7 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima { MyMutex::MyLock lock(getImageMutex); - tran = defTransform(tran); + tran = defTransform (tran); // compute channel multipliers double r, g, b; @@ -653,7 +652,7 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima gm = ri->get_pre_mul(1); bm = ri->get_pre_mul(2); } else { - ctemp.getMultipliers(r, g, b); + ctemp.getMultipliers (r, g, b); rm = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; gm = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; bm = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; @@ -697,7 +696,7 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima defGain = 0.0; // compute image area to render in order to provide the requested part of the image int sx1, sy1, imwidth, imheight, fw, d1xHeightOdd = 0; - transformRect(pp, tran, sx1, sy1, imwidth, imheight, fw); + transformRect (pp, tran, sx1, sy1, imwidth, imheight, fw); // check possible overflows int maximwidth, maximheight; @@ -839,15 +838,15 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima //process all highlight recovery other than "Color" if (doHr) { - hlRecovery(hrp.method, line_red, line_grn, line_blue, imwidth, hlmax); + hlRecovery (hrp.method, line_red, line_grn, line_blue, imwidth, hlmax); } if (d1x) { transLineD1x (line_red, line_grn, line_blue, ix, image, tran, imwidth, imheight, d1xHeightOdd, doClip); } else if (fuji) { - transLineFuji(line_red, line_grn, line_blue, ix, image, tran, imheight, fw); + transLineFuji (line_red, line_grn, line_blue, ix, image, tran, imheight, fw); } else { - transLineStandard(line_red, line_grn, line_blue, ix, image, tran, imwidth, imheight); + transLineStandard (line_red, line_grn, line_blue, ix, image, tran, imwidth, imheight); } } @@ -906,22 +905,22 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima // Flip if needed if (tran & TR_HFLIP) { - hflip(image); + hflip (image); } if (tran & TR_VFLIP) { - vflip(image); + vflip (image); } // Colour correction (only when running on full resolution) if (pp.getSkip() == 1) { - switch (ri->getSensorType()) { + switch(ri->getSensorType()) { case ST_BAYER: - processFalseColorCorrection(image, raw.bayersensor.ccSteps); + processFalseColorCorrection (image, raw.bayersensor.ccSteps); break; case ST_FUJI_XTRANS: - processFalseColorCorrection(image, raw.xtranssensor.ccSteps); + processFalseColorCorrection (image, raw.xtranssensor.ccSteps); break; case ST_FOVEON: @@ -945,7 +944,6 @@ DCPProfile *RawImageSource::getDCP(const ColorManagementParams &cmp, DCPProfileA if (settings->verbose) { printf("Can't load DCP profile '%s'!\n", cmp.inputProfile.c_str()); } - return nullptr; } @@ -956,13 +954,13 @@ DCPProfile *RawImageSource::getDCP(const ColorManagementParams &cmp, DCPProfileA void RawImageSource::convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) { double pre_mul[3] = { ri->get_pre_mul(0), ri->get_pre_mul(1), ri->get_pre_mul(2) }; - colorSpaceConversion(image, cmp, wb, pre_mul, embProfile, camProfile, imatrices.xyz_cam, (static_cast(getMetaData()))->getCamera()); + colorSpaceConversion (image, cmp, wb, pre_mul, embProfile, camProfile, imatrices.xyz_cam, (static_cast(getMetaData()))->getCamera()); } -void RawImageSource::getFullSize(int& w, int& h, int tr) +void RawImageSource::getFullSize (int& w, int& h, int tr) { - tr = defTransform(tr); + tr = defTransform (tr); if (fuji) { w = ri->get_FujiWidth() * 2 + 1; @@ -987,7 +985,7 @@ void RawImageSource::getFullSize(int& w, int& h, int tr) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::getSize(const PreviewProps &pp, int& w, int& h) +void RawImageSource::getSize (const PreviewProps &pp, int& w, int& h) { w = pp.getWidth() / pp.getSkip() + (pp.getWidth() % pp.getSkip() > 0); h = pp.getHeight() / pp.getSkip() + (pp.getHeight() % pp.getSkip() > 0); @@ -995,20 +993,21 @@ void RawImageSource::getSize(const PreviewProps &pp, int& w, int& h) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::hflip(Imagefloat* image) +void RawImageSource::hflip (Imagefloat* image) { image->hflip(); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::vflip(Imagefloat* image) +void RawImageSource::vflip (Imagefloat* image) { image->vflip(); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) { @@ -1242,10 +1241,9 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) return 0; // OK! } - //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise) +void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise) { // BENCHFUN MyTime t1, t2; @@ -1299,7 +1297,6 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (numFrames == 4) { int bufferNumber = 0; - for (unsigned int i=0; i<4; ++i) { if (i==currFrame) { copyOriginalPixels(raw, ri, rid, rif, rawData); @@ -1308,7 +1305,6 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (!rawDataBuffer[bufferNumber]) { rawDataBuffer[bufferNumber] = new array2D; } - rawDataFrames[i] = rawDataBuffer[bufferNumber]; ++bufferNumber; copyOriginalPixels(raw, riFrames[i], rid, rif, *rawDataFrames[i]); @@ -1330,7 +1326,6 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens } else { copyOriginalPixels(raw, ri, rid, rif, rawData); } - //FLATFIELD end @@ -1381,7 +1376,6 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens // Correct vignetting of lens profile if (!hasFlatField && lensProf.useVign && lensProf.lcMode != LensProfParams::LcMode::NONE) { std::unique_ptr pmap; - if (lensProf.useLensfun()) { pmap = LFDatabase::getInstance()->findModifier(lensProf, idata, W, H, coarse, -1); } else { @@ -1394,7 +1388,6 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (pmap) { LensCorrection &map = *pmap; - if (ri->getSensorType() == ST_BAYER || ri->getSensorType() == ST_FUJI_XTRANS || ri->get_colors() == 1) { if (numFrames == 4) { for (int i = 0; i < 4; ++i) { @@ -1414,7 +1407,7 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (ri->getSensorType() == ST_BAYER && (raw.hotPixelFilter > 0 || raw.deadPixelFilter > 0)) { if (plistener) { plistener->setProgressStr ("PROGRESSBAR_HOTDEADPIXELFILTER"); - plistener->setProgress(0.0); + plistener->setProgress (0.0); } if (!bitmapBads) { @@ -1481,7 +1474,7 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (ri->getSensorType() == ST_BAYER && raw.bayersensor.greenthresh > 0) { if (plistener) { plistener->setProgressStr ("PROGRESSBAR_GREENEQUIL"); - plistener->setProgress(0.0); + plistener->setProgress (0.0); } GreenEqulibrateThreshold thresh(0.01 * raw.bayersensor.greenthresh); @@ -1515,7 +1508,7 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (ri->getSensorType() == ST_BAYER && raw.bayersensor.linenoise > 0) { if (plistener) { plistener->setProgressStr ("PROGRESSBAR_LINEDENOISE"); - plistener->setProgress(0.0); + plistener->setProgress (0.0); } std::unique_ptr line_denoise_rowblender; @@ -1532,9 +1525,8 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if ((raw.ca_autocorrect || std::fabs(raw.cared) > 0.001 || std::fabs(raw.cablue) > 0.001) && ri->getSensorType() == ST_BAYER) { // Auto CA correction disabled for X-Trans, for now... if (plistener) { plistener->setProgressStr ("PROGRESSBAR_RAWCACORR"); - plistener->setProgress(0.0); + plistener->setProgress (0.0); } - if (numFrames == 4) { double fitParams[64]; float *buffer = CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[0], fitParams, false, true, nullptr, false, options.chunkSizeCA, options.measure); @@ -1552,8 +1544,8 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens int aehistcompr; double clip = 0; int brightness, contrast, black, hlcompr, hlcomprthresh; - getAutoExpHistogram(aehist, aehistcompr); - ImProcFunctions::getAutoExp(aehist, aehistcompr, clip, dirpyrdenoiseExpComp, brightness, contrast, black, hlcompr, hlcomprthresh); + getAutoExpHistogram (aehist, aehistcompr); + ImProcFunctions::getAutoExp (aehist, aehistcompr, clip, dirpyrdenoiseExpComp, brightness, contrast, black, hlcompr, hlcomprthresh); } t2.set(); @@ -1574,11 +1566,11 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c if (ri->getSensorType() == ST_BAYER) { if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::HPHD)) { - hphd_demosaic(); + hphd_demosaic (); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::VNG4)) { vng4_demosaic (rawData, red, green, blue); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AHD)) { - ahd_demosaic(); + ahd_demosaic (); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZE)) { amaze_demosaic_RT (0, 0, W, H, rawData, red, green, blue, options.chunkSizeAMAZE, options.measure); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4) @@ -1595,7 +1587,7 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCB)) { dcb_demosaic(raw.bayersensor.dcb_iterations, raw.bayersensor.dcb_enhance); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::EAHD)) { - eahd_demosaic(); + eahd_demosaic (); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::IGV)) { igv_interpolate(W, H); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::LMMSE)) { @@ -1695,20 +1687,20 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI) { bool useHsl = (retinexParams.retinexcolorspace == "HSLLOG" || retinexParams.retinexcolorspace == "HSLLIN"); - conversionBuffer[0](W - 2 * border, H - 2 * border); - conversionBuffer[1](W - 2 * border, H - 2 * border); - conversionBuffer[2](W - 2 * border, H - 2 * border); - conversionBuffer[3](W - 2 * border, H - 2 * border); + conversionBuffer[0] (W - 2 * border, H - 2 * border); + conversionBuffer[1] (W - 2 * border, H - 2 * border); + conversionBuffer[2] (W - 2 * border, H - 2 * border); + conversionBuffer[3] (W - 2 * border, H - 2 * border); LUTf *retinexgamtab = nullptr;//gamma before and after Retinex to restore tones LUTf lutTonereti; if (retinexParams.gammaretinex == "low") { - retinexgamtab = & (Color::gammatab_115_2); + retinexgamtab = &(Color::gammatab_115_2); } else if (retinexParams.gammaretinex == "mid") { - retinexgamtab = & (Color::gammatab_13_2); + retinexgamtab = &(Color::gammatab_13_2); } else if (retinexParams.gammaretinex == "hig") { - retinexgamtab = & (Color::gammatab_145_3); + retinexgamtab = &(Color::gammatab_145_3); } else if (retinexParams.gammaretinex == "fre") { GammaValues g_a; double pwr = 1.0 / retinexParams.gam; @@ -1744,12 +1736,12 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con double x; if (gamm2 < 1.) { - x = Color::igammareti(val, gamm, start, ts, mul, add); + x = Color::igammareti (val, gamm, start, ts, mul , add); } else { - x = Color::gammareti(val, gamm, start, ts, mul, add); + x = Color::gammareti (val, gamm, start, ts, mul , add); } - lutTonereti[i] = CLIP(x * 65535.); // CLIP avoid in some case extra values + lutTonereti[i] = CLIP(x * 65535.);// CLIP avoid in some case extra values } retinexgamtab = &lutTonereti; @@ -1951,9 +1943,9 @@ void RawImageSource::retinexPrepareCurves(const RetinexParams &retinexParams, LU useHsl = (retinexParams.retinexcolorspace == "HSLLOG" || retinexParams.retinexcolorspace == "HSLLIN"); if (useHsl) { - CurveFactory::curveDehaContL(retinexcontlutili, retinexParams.cdHcurve, cdcurve, 1, lhist16RETI, histLRETI); + CurveFactory::curveDehaContL (retinexcontlutili, retinexParams.cdHcurve, cdcurve, 1, lhist16RETI, histLRETI); } else { - CurveFactory::curveDehaContL(retinexcontlutili, retinexParams.cdcurve, cdcurve, 1, lhist16RETI, histLRETI); + CurveFactory::curveDehaContL (retinexcontlutili, retinexParams.cdcurve, cdcurve, 1, lhist16RETI, histLRETI); } CurveFactory::mapcurve(mapcontlutili, retinexParams.mapcurve, mapcurve, 1, lhist16RETI, histLRETI); @@ -1967,7 +1959,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara t4.set(); if (settings->verbose) { - printf("Applying Retinex\n"); + printf ("Applying Retinex\n"); } LUTf lutToneireti; @@ -1976,11 +1968,11 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara LUTf *retinexigamtab = nullptr;//gamma before and after Retinex to restore tones if (deh.gammaretinex == "low") { - retinexigamtab = & (Color::igammatab_115_2); + retinexigamtab = &(Color::igammatab_115_2); } else if (deh.gammaretinex == "mid") { - retinexigamtab = & (Color::igammatab_13_2); + retinexigamtab = &(Color::igammatab_13_2); } else if (deh.gammaretinex == "hig") { - retinexigamtab = & (Color::igammatab_145_3); + retinexigamtab = &(Color::igammatab_145_3); } else if (deh.gammaretinex == "fre") { GammaValues g_a; double pwr = 1.0 / deh.gam; @@ -2013,9 +2005,9 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara double x; if (gamm2 < 1.) { - x = Color::gammareti(val, gamm, start, ts, mul, add); + x = Color::gammareti (val, gamm, start, ts, mul , add); } else { - x = Color::igammareti(val, gamm, start, ts, mul, add); + x = Color::igammareti (val, gamm, start, ts, mul , add); } lutToneireti[i] = CLIP(x * 65535.); @@ -2029,7 +2021,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara const int HNew = H - 2 * border; const int WNew = W - 2 * border; - array2D LBuffer(WNew, HNew); + array2D LBuffer (WNew, HNew); float **temp = conversionBuffer[2]; // one less dereference LUTf dLcurve; LUTu hist16RET; @@ -2084,7 +2076,8 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara int pos = LBuffer[i][j]; hist16RETThr[pos]++; //histogram in Curve } - } else + } + else for (int j = 0; j < W - 2 * border; j++) { LBuffer[i][j] = temp[i][j]; } @@ -2255,7 +2248,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #endif if (chutili) { // c=f(H) - float valp = float ((chcurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5f)); + float valp = float((chcurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5f)); Chprov1 *= (1.f + 2.f * valp); } @@ -2394,10 +2387,10 @@ void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) if (hrp.hrenabled && hrp.method == "Color") { if (!rgbSourceModified) { if (settings->verbose) { - printf("Applying Highlight Recovery: Color propagation...\n"); + printf ("Applying Highlight Recovery: Color propagation...\n"); } - HLRecovery_inpaint(red, green, blue); + HLRecovery_inpaint (red, green, blue); rgbSourceModified = true; } } @@ -2541,7 +2534,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R c_white[i] = (ri->get_white(i) - cblacksom[i]) / raw.expos + cblacksom[i]; } - initialGain = calculate_scale_mul(scale_mul, ref_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); // recalculate scale colors with adjusted levels + initialGain = calculate_scale_mul(scale_mul, ref_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); // recalculate scale colors with adjusted levels //fprintf(stderr, "recalc: %f [%f %f %f %f]\n", initialGain, scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); for (int i = 0; i < 4 ; i++) { @@ -2677,7 +2670,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -int RawImageSource::defTransform(int tran) +int RawImageSource::defTransform (int tran) { int deg = ri->get_rotateDegree(); @@ -2716,7 +2709,7 @@ int RawImageSource::defTransform(int tran) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // Thread called part -void RawImageSource::processFalseColorCorrectionThread(Imagefloat* im, array2D &rbconv_Y, array2D &rbconv_I, array2D &rbconv_Q, array2D &rbout_I, array2D &rbout_Q, const int row_from, const int row_to) +void RawImageSource::processFalseColorCorrectionThread (Imagefloat* im, array2D &rbconv_Y, array2D &rbconv_I, array2D &rbconv_Q, array2D &rbout_I, array2D &rbout_Q, const int row_from, const int row_to) { const int W = im->getWidth(); @@ -2738,8 +2731,8 @@ void RawImageSource::processFalseColorCorrectionThread(Imagefloat* im, array2Dr(row_from - 1), im->g(row_from - 1), im->b(row_from - 1), rbconv_Y[px], rbconv_I[px], rbconv_Q[px], W); - convert_row_to_YIQ(im->r(row_from), im->g(row_from), im->b(row_from), rbconv_Y[cx], rbconv_I[cx], rbconv_Q[cx], W); + convert_row_to_YIQ (im->r(row_from - 1), im->g(row_from - 1), im->b(row_from - 1), rbconv_Y[px], rbconv_I[px], rbconv_Q[px], W); + convert_row_to_YIQ (im->r(row_from), im->g(row_from), im->b(row_from), rbconv_Y[cx], rbconv_I[cx], rbconv_Q[cx], W); for (int j = 0; j < W; j++) { rbout_I[px][j] = rbconv_I[px][j]; @@ -2752,11 +2745,11 @@ void RawImageSource::processFalseColorCorrectionThread(Imagefloat* im, array2Dr(i + 1), im->g(i + 1), im->b(i + 1), rbconv_Y[nx], rbconv_I[nx], rbconv_Q[nx], W); + convert_row_to_YIQ (im->r(i + 1), im->g(i + 1), im->b(i + 1), rbconv_Y[nx], rbconv_I[nx], rbconv_Q[nx], W); #ifdef __SSE2__ - pre1[0] = _mm_setr_ps(rbconv_I[px][0], rbconv_Q[px][0], 0, 0), pre1[1] = _mm_setr_ps(rbconv_I[cx][0], rbconv_Q[cx][0], 0, 0), pre1[2] = _mm_setr_ps(rbconv_I[nx][0], rbconv_Q[nx][0], 0, 0); - pre2[0] = _mm_setr_ps(rbconv_I[px][1], rbconv_Q[px][1], 0, 0), pre2[1] = _mm_setr_ps(rbconv_I[cx][1], rbconv_Q[cx][1], 0, 0), pre2[2] = _mm_setr_ps(rbconv_I[nx][1], rbconv_Q[nx][1], 0, 0); + pre1[0] = _mm_setr_ps(rbconv_I[px][0], rbconv_Q[px][0], 0, 0) , pre1[1] = _mm_setr_ps(rbconv_I[cx][0], rbconv_Q[cx][0], 0, 0), pre1[2] = _mm_setr_ps(rbconv_I[nx][0], rbconv_Q[nx][0], 0, 0); + pre2[0] = _mm_setr_ps(rbconv_I[px][1], rbconv_Q[px][1], 0, 0) , pre2[1] = _mm_setr_ps(rbconv_I[cx][1], rbconv_Q[cx][1], 0, 0), pre2[2] = _mm_setr_ps(rbconv_I[nx][1], rbconv_Q[nx][1], 0, 0); // fill first element in rbout_I and rbout_Q rbout_I[cx][0] = rbconv_I[cx][0]; @@ -2829,7 +2822,7 @@ void RawImageSource::processFalseColorCorrectionThread(Imagefloat* im, array2D row_from) { - convert_to_RGB(im->r(i - 1, 0), im->g(i - 1, 0), im->b(i - 1, 0), rbconv_Y[px][0], rbout_I[px][0], rbout_Q[px][0]); + convert_to_RGB (im->r(i - 1, 0), im->g(i - 1, 0), im->b(i - 1, 0), rbconv_Y[px][0], rbout_I[px][0], rbout_Q[px][0]); #ifdef _OPENMP #pragma omp simd @@ -2838,15 +2831,15 @@ void RawImageSource::processFalseColorCorrectionThread(Imagefloat* im, array2Dr(i - 1, j), im->g(i - 1, j), im->b(i - 1, j), rbconv_Y[px][j], I, Q); + convert_to_RGB (im->r(i - 1, j), im->g(i - 1, j), im->b(i - 1, j), rbconv_Y[px][j], I, Q); } - convert_to_RGB(im->r(i - 1, W - 1), im->g(i - 1, W - 1), im->b(i - 1, W - 1), rbconv_Y[px][W - 1], rbout_I[px][W - 1], rbout_Q[px][W - 1]); + convert_to_RGB (im->r(i - 1, W - 1), im->g(i - 1, W - 1), im->b(i - 1, W - 1), rbconv_Y[px][W - 1], rbout_I[px][W - 1], rbout_Q[px][W - 1]); } } // blur last 3 row and finalize H-1th row - convert_to_RGB(im->r(row_to - 1, 0), im->g(row_to - 1, 0), im->b(row_to - 1, 0), rbconv_Y[cx][0], rbout_I[cx][0], rbout_Q[cx][0]); + convert_to_RGB (im->r(row_to - 1, 0), im->g(row_to - 1, 0), im->b(row_to - 1, 0), rbconv_Y[cx][0], rbout_I[cx][0], rbout_Q[cx][0]); #ifdef _OPENMP #pragma omp simd #endif @@ -2854,16 +2847,16 @@ void RawImageSource::processFalseColorCorrectionThread(Imagefloat* im, array2Dr(row_to - 1, j), im->g(row_to - 1, j), im->b(row_to - 1, j), rbconv_Y[cx][j], I, Q); + convert_to_RGB (im->r(row_to - 1, j), im->g(row_to - 1, j), im->b(row_to - 1, j), rbconv_Y[cx][j], I, Q); } - convert_to_RGB(im->r(row_to - 1, W - 1), im->g(row_to - 1, W - 1), im->b(row_to - 1, W - 1), rbconv_Y[cx][W - 1], rbout_I[cx][W - 1], rbout_Q[cx][W - 1]); + convert_to_RGB (im->r(row_to - 1, W - 1), im->g(row_to - 1, W - 1), im->b(row_to - 1, W - 1), rbconv_Y[cx][W - 1], rbout_I[cx][W - 1], rbout_Q[cx][W - 1]); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // correction_YIQ_LQ -void RawImageSource::processFalseColorCorrection(Imagefloat* im, const int steps) +void RawImageSource::processFalseColorCorrection (Imagefloat* im, const int steps) { if (im->getHeight() < 4 || steps < 1) { @@ -2873,7 +2866,7 @@ void RawImageSource::processFalseColorCorrection(Imagefloat* im, const int steps #ifdef _OPENMP #pragma omp parallel { - multi_array2D buffer(W, 3); + multi_array2D buffer (W, 3); int tid = omp_get_thread_num(); int nthreads = omp_get_num_threads(); int blk = (im->getHeight() - 2) / nthreads; @@ -2881,19 +2874,19 @@ void RawImageSource::processFalseColorCorrection(Imagefloat* im, const int steps for (int t = 0; t < steps; t++) { if (tid < nthreads - 1) { - processFalseColorCorrectionThread(im, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], 1 + tid * blk, 1 + (tid + 1)*blk); + processFalseColorCorrectionThread (im, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], 1 + tid * blk, 1 + (tid + 1)*blk); } else { - processFalseColorCorrectionThread(im, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], 1 + tid * blk, im->getHeight() - 1); + processFalseColorCorrectionThread (im, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], 1 + tid * blk, im->getHeight() - 1); } #pragma omp barrier } } #else - multi_array2D buffer(W, 3); + multi_array2D buffer (W, 3); for (int t = 0; t < steps; t++) { - processFalseColorCorrectionThread(im, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], 1, im->getHeight() - 1); + processFalseColorCorrectionThread (im, buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], 1 , im->getHeight() - 1); } #endif @@ -2967,7 +2960,7 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b) } // Converts raw image including ICC input profile to working space - floating point version -void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagementParams& cmp, const ColorTemp &wb, double pre_mul[3], cmsHPROFILE embedded, cmsHPROFILE camprofile, double camMatrix[3][3], const std::string &camName) +void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagementParams& cmp, const ColorTemp &wb, double pre_mul[3], cmsHPROFILE embedded, cmsHPROFILE camprofile, double camMatrix[3][3], const std::string &camName) { // MyTime t1, t2, t3; @@ -3093,7 +3086,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement // Initialize transform cmsHTRANSFORM hTransform; - cmsHPROFILE prophoto = ICCStore::getInstance()->workingSpace("ProPhoto"); // We always use Prophoto to apply the ICC profile to minimize problems with clipping in LUT conversion. + cmsHPROFILE prophoto = ICCStore::getInstance()->workingSpace("ProPhoto"); // We always use Prophoto to apply the ICC profile to minimize problems with clipping in LUT conversion. bool transform_via_pcs_lab = false; bool separate_pcs_lab_highlights = false; @@ -3123,7 +3116,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement } } - lcmsMutex->lock(); + lcmsMutex->lock (); switch (camera_icc_type) { case CAMERA_ICC_TYPE_PHASE_ONE: @@ -3154,19 +3147,19 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement break; } - lcmsMutex->unlock(); + lcmsMutex->unlock (); if (hTransform == nullptr) { // Fallback: create transform from camera profile. Should not happen normally. - lcmsMutex->lock(); + lcmsMutex->lock (); hTransform = cmsCreateTransform (camprofile, TYPE_RGB_FLT, prophoto, TYPE_RGB_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); - lcmsMutex->unlock(); + lcmsMutex->unlock (); } TMatrix toxyz = {}, torgb = {}; if (!working_space_is_prophoto) { - toxyz = ICCStore::getInstance()->workingSpaceMatrix("ProPhoto"); + toxyz = ICCStore::getInstance()->workingSpaceMatrix ("ProPhoto"); torgb = ICCStore::getInstance()->workingSpaceInverseMatrix (cmp.workingProfile); //sRGB .. Adobe...Wide... } @@ -3186,9 +3179,9 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement // Apply pre-processing for (int w = 0; w < im->getWidth(); ++w) { - float r = * (pR++); - float g = * (pG++); - float b = * (pB++); + float r = *(pR++); + float g = *(pG++); + float b = *(pB++); // convert to 0-1 range as LCMS expects that r /= 65535.0f; @@ -3250,16 +3243,16 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement break; } - * (p++) = r; - * (p++) = g; - * (p++) = b; + *(p++) = r; + *(p++) = g; + *(p++) = b; } // Run icc transform - cmsDoTransform(hTransform, buffer.data, buffer.data, im->getWidth()); + cmsDoTransform (hTransform, buffer.data, buffer.data, im->getWidth()); if (separate_pcs_lab_highlights) { - cmsDoTransform(hTransform, hl_buffer.data, hl_buffer.data, im->getWidth()); + cmsDoTransform (hTransform, hl_buffer.data, hl_buffer.data, im->getWidth()); } // Apply post-processing @@ -3273,9 +3266,9 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement float r, g, b, hr = 0.f, hg = 0.f, hb = 0.f; if (transform_via_pcs_lab) { - float L = * (p++); - float A = * (p++); - float B = * (p++); + float L = *(p++); + float A = *(p++); + float B = *(p++); // profile connection space CIELAB should have D50 illuminant lab2ProphotoRgbD50(L, A, B, r, g, b); @@ -3283,9 +3276,9 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement lab2ProphotoRgbD50(hl_buffer.data[3 * w + 0], hl_buffer.data[3 * w + 1], hl_buffer.data[3 * w + 2], hr, hg, hb); } } else { - r = * (p++); - g = * (p++); - b = * (p++); + r = *(p++); + g = *(p++); + b = *(p++); } // restore pre-processing and/or add post-processing for the various ICC types @@ -3304,7 +3297,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement if (maxc > mix) { float fac = (maxc - mix) / (1.0 - mix); - fac = sqrtf(sqrtf(fac)); // gamma 0.25 to mix in highlight render relatively quick + fac = sqrtf(sqrtf(fac)); // gamma 0.25 to mix in highlight render relatively quick r = (1.0 - fac) * r + fac * hr; g = (1.0 - fac) * g + fac * hg; b = (1.0 - fac) * b + fac * hb; @@ -3349,9 +3342,9 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement g *= 65535.0; b *= 65535.0; - * (pR++) = r; - * (pG++) = g; - * (pB++) = b; + *(pR++) = r; + *(pG++) = g; + *(pB++) = b; } } } // End of parallelization @@ -3385,7 +3378,7 @@ bool RawImageSource::findInputProfile(Glib::ustring inProfile, cmsHPROFILE embed } else if (inProfile != "(camera)" && !inProfile.empty()) { Glib::ustring normalName = inProfile; - if (!inProfile.compare(0, 5, "file:")) { + if (!inProfile.compare (0, 5, "file:")) { normalName = inProfile.substr(5); } @@ -3394,7 +3387,7 @@ bool RawImageSource::findInputProfile(Glib::ustring inProfile, cmsHPROFILE embed } if (*dcpProf == nullptr) { - in = ICCStore::getInstance()->getProfile(inProfile); + in = ICCStore::getInstance()->getProfile (inProfile); } } @@ -3535,7 +3528,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi } } -void RawImageSource::HLRecovery_Luminance(float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval) +void RawImageSource::HLRecovery_Luminance (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval) { for (int i = 0; i < width; i++) { @@ -3573,8 +3566,8 @@ void RawImageSource::HLRecovery_Luminance(float* rin, float* gin, float* bin, fl //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::HLRecovery_CIELab(float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, - int width, float maxval, double xyz_cam[3][3], double cam_xyz[3][3]) +void RawImageSource::HLRecovery_CIELab (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, + int width, float maxval, double xyz_cam[3][3], double cam_xyz[3][3]) { //static bool crTableReady = false; @@ -3634,10 +3627,11 @@ void RawImageSource::hlRecovery (const std::string &method, float* red, float* g { if (method == "Luminance") { - HLRecovery_Luminance(red, green, blue, red, green, blue, width, 65535.0); + HLRecovery_Luminance (red, green, blue, red, green, blue, width, 65535.0); } else if (method == "CIELab blending") { - HLRecovery_CIELab(red, green, blue, red, green, blue, width, 65535.0, imatrices.xyz_cam, imatrices.cam_xyz); - } else if (method == "Blend") { // derived from Dcraw + HLRecovery_CIELab (red, green, blue, red, green, blue, width, 65535.0, imatrices.xyz_cam, imatrices.cam_xyz); + } + else if (method == "Blend") { // derived from Dcraw HLRecovery_blend(red, green, blue, width, 65535.0, hlmax); } @@ -3645,7 +3639,7 @@ void RawImageSource::hlRecovery (const std::string &method, float* red, float* g //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::getAutoExpHistogram(LUTu & histogram, int& histcompr) +void RawImageSource::getAutoExpHistogram (LUTu & histogram, int& histcompr) { // BENCHFUN histcompr = 3; @@ -3666,7 +3660,7 @@ void RawImageSource::getAutoExpHistogram(LUTu & histogram, int& histcompr) for (int i = border; i < H - border; i++) { int start, end; - getRowStartEnd(i, start, end); + getRowStartEnd (i, start, end); if (ri->getSensorType() == ST_BAYER) { // precalculate factors to avoid expensive per pixel calculations @@ -3727,7 +3721,7 @@ void RawImageSource::getAutoExpHistogram(LUTu & histogram, int& histcompr) } // Histogram MUST be 256 in size; gamma is applied, blackpoint and gain also -void RawImageSource::getRAWHistogram(LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw) +void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw) { // BENCHFUN histRedRaw.clear(); @@ -3794,7 +3788,7 @@ void RawImageSource::getRAWHistogram(LUTu & histRedRaw, LUTu & histGreenRaw, LUT for (int i = border; i < H - border; i++) { int start, end; - getRowStartEnd(i, start, end); + getRowStartEnd (i, start, end); if (ri->getSensorType() == ST_BAYER) { int j; @@ -3888,7 +3882,7 @@ void RawImageSource::getRAWHistogram(LUTu & histRedRaw, LUTu & histGreenRaw, LUT //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::getRowStartEnd(int x, int &start, int &end) +void RawImageSource::getRowStartEnd (int x, int &start, int &end) { if (fuji) { int fw = ri->get_FujiWidth(); @@ -5620,7 +5614,7 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref } -void RawImageSource::getAutoWBMultipliers(double &rm, double &gm, double &bm) +void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) { // BENCHFUN constexpr double clipHigh = 64000.0; @@ -5761,7 +5755,7 @@ void RawImageSource::getAutoWBMultipliers(double &rm, double &gm, double &bm) //determine GRBG coset; (ey,ex) is the offset of the R subarray int ey, ex; - if (ri->ISGREEN(0, 0)) { //first pixel is G + if (ri->ISGREEN(0, 0)) { //first pixel is G if (ri->ISRED(0, 1)) { ey = 0; ex = 1; @@ -5822,7 +5816,7 @@ void RawImageSource::getAutoWBMultipliers(double &rm, double &gm, double &bm) } if (settings->verbose) { - printf("AVG: %g %g %g\n", avg_r / std::max(1, rn), avg_g / std::max(1, gn), avg_b / std::max(1, bn)); + printf ("AVG: %g %g %g\n", avg_r / std::max(1, rn), avg_g / std::max(1, gn), avg_b / std::max(1, bn)); } // return ColorTemp (pow(avg_r/rn, 1.0/6.0)*img_r, pow(avg_g/gn, 1.0/6.0)*img_g, pow(avg_b/bn, 1.0/6.0)*img_b); @@ -5836,7 +5830,7 @@ void RawImageSource::getAutoWBMultipliers(double &rm, double &gm, double &bm) blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; } -ColorTemp RawImageSource::getSpotWB(std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) +ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) { int x; @@ -5849,7 +5843,7 @@ ColorTemp RawImageSource::getSpotWB(std::vector &red, std::vector &red, std::vector= 0 && yv >= 0 && xv < W && yv < H) { - if (ri->ISXTRANSRED(yv, xv)) { //RED + if (ri->ISXTRANSRED(yv, xv)) { //RED rloc += (rawData[yv][xv]); rnbrs++; continue; - } else if (ri->ISXTRANSBLUE(yv, xv)) { //BLUE + } else if (ri->ISXTRANSBLUE(yv, xv)) { //BLUE bloc += (rawData[yv][xv]); bnbrs++; continue; @@ -5892,9 +5886,9 @@ ColorTemp RawImageSource::getSpotWB(std::vector &red, std::vector 52500 || initialGain * (rawData[yg][3 * xg + 1]) > 52500 || @@ -5921,7 +5915,7 @@ ColorTemp RawImageSource::getSpotWB(std::vector &red, std::vector &red, std::vector &red, std::vector &red, std::vector &red, std::vector cForwardPoints; - cForwardPoints.push_back(double (DCT_Spline)); // The first value is the curve type + cForwardPoints.push_back(double(DCT_Spline)); // The first value is the curve type std::vector cInversePoints; - cInversePoints.push_back(double (DCT_Spline)); // The first value is the curve type + cInversePoints.push_back(double(DCT_Spline)); // The first value is the curve type for (unsigned int i = 0; i < sizeof(phase_one_forward) / sizeof(phase_one_forward[0]); i += 2) { cForwardPoints.push_back(phase_one_forward[i + 0]); @@ -6185,15 +6179,14 @@ void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int int ynew = y + border; rotate += ri->get_rotateDegree(); rotate %= 360; - if (rotate == 90) { - std::swap(xnew, ynew); + std::swap(xnew,ynew); ynew = H - 1 - ynew; } else if (rotate == 180) { xnew = W - 1 - xnew; ynew = H - 1 - ynew; } else if (rotate == 270) { - std::swap(xnew, ynew); + std::swap(xnew,ynew); xnew = W - 1 - xnew; } @@ -6201,23 +6194,16 @@ void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int ynew = LIM(ynew, 0, H - 1); int c = ri->getSensorType() == ST_FUJI_XTRANS ? ri->XTRANSFC(ynew,xnew) : ri->FC(ynew,xnew); int val = round(rawData[ynew][xnew] / scale_mul[c]); - if (c == 0) { - R = val; - G = 0; - B = 0; + R = val; G = 0; B = 0; } else if (c == 2) { - R = 0; - G = 0; - B = val; + R = 0; G = 0; B = val; } else { - R = 0; - G = val; - B = 0; + R = 0; G = val; B = 0; } } -void RawImageSource::cleanup() +void RawImageSource::cleanup () { delete phaseOneIccCurve; delete phaseOneIccCurveInv;