cppcheck: further fixes
This commit is contained in:
parent
9cbc49d817
commit
55a2aae381
@ -40,7 +40,7 @@ void RawImageSource::ahd_demosaic()
|
|||||||
{
|
{
|
||||||
BENCHFUN
|
BENCHFUN
|
||||||
|
|
||||||
constexpr int dir[4] = { -1, 1, -TS, TS };
|
constexpr int dirs[4] = { -1, 1, -TS, TS };
|
||||||
float xyz_cam[3][3];
|
float xyz_cam[3][3];
|
||||||
LUTf cbrt(65536);
|
LUTf cbrt(65536);
|
||||||
|
|
||||||
@ -55,9 +55,10 @@ void RawImageSource::ahd_demosaic()
|
|||||||
constexpr float d65_white[3] = { 0.950456, 1, 1.088754 };
|
constexpr float d65_white[3] = { 0.950456, 1, 1.088754 };
|
||||||
|
|
||||||
double progress = 0.0;
|
double progress = 0.0;
|
||||||
|
|
||||||
if (plistener) {
|
if (plistener) {
|
||||||
plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), M("TP_RAW_AHD")));
|
plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), M("TP_RAW_AHD")));
|
||||||
plistener->setProgress (0.0);
|
plistener->setProgress (progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 65536; i++) {
|
for (int i = 0; i < 65536; i++) {
|
||||||
@ -65,16 +66,17 @@ void RawImageSource::ahd_demosaic()
|
|||||||
cbrt[i] = r > 0.008856 ? std::cbrt(r) : 7.787 * r + 16 / 116.0;
|
cbrt[i] = r > 0.008856 ? std::cbrt(r) : 7.787 * r + 16 / 116.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++) {
|
||||||
for (unsigned int j = 0; j < 3; j++) {
|
for (unsigned int j = 0; j < 3; j++) {
|
||||||
xyz_cam[i][j] = 0;
|
xyz_cam[i][j] = 0;
|
||||||
for (int k = 0; k < 3; k++) {
|
for (int k = 0; k < 3; k++) {
|
||||||
xyz_cam[i][j] += xyz_rgb[i][k] * imatrices.rgb_cam[k][j] / d65_white[i];
|
xyz_cam[i][j] += xyz_rgb[i][k] * imatrices.rgb_cam[k][j] / d65_white[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
border_interpolate2(W, H, 5, rawData, red, green, blue);
|
border_interpolate2(W, H, 5, rawData, red, green, blue);
|
||||||
|
|
||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel
|
#pragma omp parallel
|
||||||
#endif
|
#endif
|
||||||
@ -153,9 +155,9 @@ void RawImageSource::ahd_demosaic()
|
|||||||
auto lix = &lab[d][tr][tc];
|
auto lix = &lab[d][tr][tc];
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
ldiff[d][i] = std::fabs(lix[0][0] - lix[dir[i]][0]);
|
ldiff[d][i] = std::fabs(lix[0][0] - lix[dirs[i]][0]);
|
||||||
abdiff[d][i] = SQR(lix[0][1] - lix[dir[i]][1])
|
abdiff[d][i] = SQR(lix[0][1] - lix[dirs[i]][1])
|
||||||
+ SQR(lix[0][2] - lix[dir[i]][2]);
|
+ SQR(lix[0][2] - lix[dirs[i]][2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,11 +49,11 @@ void RawImageSource::amaze_demosaic_RT(int winx, int winy, int winw, int winh, c
|
|||||||
stop.reset(new StopWatch("amaze demosaic"));
|
stop.reset(new StopWatch("amaze demosaic"));
|
||||||
}
|
}
|
||||||
|
|
||||||
volatile double progress = 0.0;
|
double progress = 0.0;
|
||||||
|
|
||||||
if (plistener) {
|
if (plistener) {
|
||||||
plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), M("TP_RAW_AMAZE")));
|
plistener->setProgressStr(Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), M("TP_RAW_AMAZE")));
|
||||||
plistener->setProgress (0.0);
|
plistener->setProgress(progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
const int width = winw, height = winh;
|
const int width = winw, height = winh;
|
||||||
|
@ -54,15 +54,15 @@ void RawImageSource::CLASS cfa_linedn(float noise, bool horizontal, bool vertica
|
|||||||
|
|
||||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
double progress = 0.0;
|
||||||
if (plistener) {
|
if (plistener) {
|
||||||
plistener->setProgressStr ("PROGRESSBAR_LINEDENOISE");
|
plistener->setProgressStr("PROGRESSBAR_LINEDENOISE");
|
||||||
plistener->setProgress (0.0);
|
plistener->setProgress(progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
float noisevar = SQR(3 * noise * 65535); // _noise_ (as a fraction of saturation) is input to the algorithm
|
float noisevar = SQR(3 * noise * 65535); // _noise_ (as a fraction of saturation) is input to the algorithm
|
||||||
float noisevarm4 = 4.0f * noisevar;
|
float noisevarm4 = 4.0f * noisevar;
|
||||||
volatile double progress = 0.0;
|
|
||||||
float* RawDataTmp = (float*)malloc( width * height * sizeof(float));
|
float* RawDataTmp = (float*)malloc( width * height * sizeof(float));
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel
|
#pragma omp parallel
|
||||||
|
@ -641,15 +641,15 @@ void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, dou
|
|||||||
}
|
}
|
||||||
// gamma correction
|
// gamma correction
|
||||||
|
|
||||||
float val = Color::gammatab_srgb1[0];
|
float val0 = Color::gammatab_srgb1[0];
|
||||||
|
|
||||||
// apply brightness curve
|
// apply brightness curve
|
||||||
if (brightcurve) {
|
if (brightcurve) {
|
||||||
val = brightcurve->getVal(val); // TODO: getVal(double) is very slow! Optimize with a LUTf
|
val0 = brightcurve->getVal(val0); // TODO: getVal(double) is very slow! Optimize with a LUTf
|
||||||
}
|
}
|
||||||
|
|
||||||
// store result in a temporary array
|
// store result in a temporary array
|
||||||
dcurve[0] = LIM01<float>(val);
|
dcurve[0] = LIM01<float>(val0);
|
||||||
|
|
||||||
for (int i = 1; i < 0x10000; i++) {
|
for (int i = 1; i < 0x10000; i++) {
|
||||||
|
|
||||||
@ -1508,10 +1508,10 @@ void ColorGradientCurve::SetXYZ(const Curve *pCurve, const double xyz_rgb[3][3],
|
|||||||
Color::gamutLchonly(h1, Lr, c1, RR, GG, BB, xyz_rgb, false, 0.15f, 0.96f);
|
Color::gamutLchonly(h1, Lr, c1, RR, GG, BB, xyz_rgb, false, 0.15f, 0.96f);
|
||||||
#endif
|
#endif
|
||||||
L1 = Lr * 327.68f;
|
L1 = Lr * 327.68f;
|
||||||
float a, b, X, Y, Z;
|
float La, Lb, X, Y, Z;
|
||||||
// converting back to rgb
|
// converting back to rgb
|
||||||
Color::Lch2Lab(c1, h1, a, b);
|
Color::Lch2Lab(c1, h1, La, Lb);
|
||||||
Color::Lab2XYZ(L1, a, b, X, Y, Z);
|
Color::Lab2XYZ(L1, La, Lb, X, Y, Z);
|
||||||
lut1[i] = X;
|
lut1[i] = X;
|
||||||
lut2[i] = Y;
|
lut2[i] = Y;
|
||||||
lut3[i] = Z;
|
lut3[i] = Z;
|
||||||
@ -1822,12 +1822,12 @@ float PerceptualToneCurve::calculateToneCurveContrastValue() const
|
|||||||
{
|
{
|
||||||
// look at midtone slope
|
// look at midtone slope
|
||||||
const float xd = 0.07;
|
const float xd = 0.07;
|
||||||
const float tx[] = { 0.30, 0.35, 0.40, 0.45 }; // we only look in the midtone range
|
const float tx0[] = { 0.30, 0.35, 0.40, 0.45 }; // we only look in the midtone range
|
||||||
|
|
||||||
for (size_t i = 0; i < sizeof(tx) / sizeof(tx[0]); i++) {
|
for (size_t i = 0; i < sizeof(tx0) / sizeof(tx0[0]); i++) {
|
||||||
float x0 = tx[i] - xd;
|
float x0 = tx0[i] - xd;
|
||||||
float y0 = CurveFactory::gamma2(lutToneCurve[CurveFactory::igamma2(x0) * 65535.f] / 65535.f) - k * x0;
|
float y0 = CurveFactory::gamma2(lutToneCurve[CurveFactory::igamma2(x0) * 65535.f] / 65535.f) - k * x0;
|
||||||
float x1 = tx[i] + xd;
|
float x1 = tx0[i] + xd;
|
||||||
float y1 = CurveFactory::gamma2(lutToneCurve[CurveFactory::igamma2(x1) * 65535.f] / 65535.f) - k * x1;
|
float y1 = CurveFactory::gamma2(lutToneCurve[CurveFactory::igamma2(x1) * 65535.f] / 65535.f) - k * x1;
|
||||||
float slope = 1.0 + (y1 - y0) / (x1 - x0);
|
float slope = 1.0 + (y1 - y0) / (x1 - x0);
|
||||||
|
|
||||||
@ -1967,15 +1967,15 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float
|
|||||||
saturated_scale_factor = 1.f;
|
saturated_scale_factor = 1.f;
|
||||||
} else if (C < hilim) {
|
} else if (C < hilim) {
|
||||||
// S-curve transition between low and high limit
|
// S-curve transition between low and high limit
|
||||||
float x = (C - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim
|
float cx = (C - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim
|
||||||
|
|
||||||
if (x < 0.5f) {
|
if (cx < 0.5f) {
|
||||||
x = 2.f * SQR(x);
|
cx = 2.f * SQR(cx);
|
||||||
} else {
|
} else {
|
||||||
x = 1.f - 2.f * SQR(1 - x);
|
cx = 1.f - 2.f * SQR(1.f - cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
saturated_scale_factor = (1.f - x) + saturated_scale_factor * x;
|
saturated_scale_factor = (1.f - cx) + saturated_scale_factor * cx;
|
||||||
} else {
|
} else {
|
||||||
// do nothing, high saturation color, keep scale factor
|
// do nothing, high saturation color, keep scale factor
|
||||||
}
|
}
|
||||||
@ -1995,15 +1995,15 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float
|
|||||||
// do nothing, keep scale factor
|
// do nothing, keep scale factor
|
||||||
} else if (nL < hilim) {
|
} else if (nL < hilim) {
|
||||||
// S-curve transition
|
// S-curve transition
|
||||||
float x = (nL - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim
|
float cx = (nL - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim
|
||||||
|
|
||||||
if (x < 0.5f) {
|
if (cx < 0.5f) {
|
||||||
x = 2.f * SQR(x);
|
cx = 2.f * SQR(cx);
|
||||||
} else {
|
} else {
|
||||||
x = 1.f - 2.f * SQR(1 - x);
|
cx = 1.f - 2.f * SQR(1 - cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
dark_scale_factor = dark_scale_factor * (1.0f - x) + x;
|
dark_scale_factor = dark_scale_factor * (1.0f - cx) + cx;
|
||||||
} else {
|
} else {
|
||||||
dark_scale_factor = 1.f;
|
dark_scale_factor = 1.f;
|
||||||
}
|
}
|
||||||
@ -2021,15 +2021,15 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float
|
|||||||
// do nothing, keep scale factor
|
// do nothing, keep scale factor
|
||||||
} else if (J < hilim) {
|
} else if (J < hilim) {
|
||||||
// S-curve transition
|
// S-curve transition
|
||||||
float x = (J - lolim) / (hilim - lolim);
|
float cx = (J - lolim) / (hilim - lolim);
|
||||||
|
|
||||||
if (x < 0.5f) {
|
if (cx < 0.5f) {
|
||||||
x = 2.f * SQR(x);
|
cx = 2.f * SQR(cx);
|
||||||
} else {
|
} else {
|
||||||
x = 1.f - 2.f * SQR(1 - x);
|
cx = 1.f - 2.f * SQR(1 - cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
dark_scale_factor = dark_scale_factor * (1.f - x) + x;
|
dark_scale_factor = dark_scale_factor * (1.f - cx) + cx;
|
||||||
} else {
|
} else {
|
||||||
dark_scale_factor = 1.f;
|
dark_scale_factor = 1.f;
|
||||||
}
|
}
|
||||||
@ -2089,15 +2089,15 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float
|
|||||||
keep = 1.f;
|
keep = 1.f;
|
||||||
} else if (sat_scale < hilim) {
|
} else if (sat_scale < hilim) {
|
||||||
// S-curve transition
|
// S-curve transition
|
||||||
float x = (sat_scale - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim
|
float cx = (sat_scale - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim
|
||||||
|
|
||||||
if (x < 0.5f) {
|
if (cx < 0.5f) {
|
||||||
x = 2.f * SQR(x);
|
cx = 2.f * SQR(cx);
|
||||||
} else {
|
} else {
|
||||||
x = 1.f - 2.f * SQR(1 - x);
|
cx = 1.f - 2.f * SQR(1 - cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
keep = (1.f - x) + keep * x;
|
keep = (1.f - cx) + keep * cx;
|
||||||
} else {
|
} else {
|
||||||
// do nothing, very high increase, keep minimum amount
|
// do nothing, very high increase, keep minimum amount
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,11 @@ void RawImageSource::rcd_demosaic(size_t chunkSize, bool measure)
|
|||||||
stop.reset(new StopWatch("rcd demosaic"));
|
stop.reset(new StopWatch("rcd demosaic"));
|
||||||
}
|
}
|
||||||
|
|
||||||
volatile double progress = 0.0;
|
double progress = 0.0;
|
||||||
|
|
||||||
if (plistener) {
|
if (plistener) {
|
||||||
plistener->setProgressStr(Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), M("TP_RAW_RCD")));
|
plistener->setProgressStr(Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), M("TP_RAW_RCD")));
|
||||||
plistener->setProgress(0);
|
plistener->setProgress(progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr int rcdBorder = 9;
|
constexpr int rcdBorder = 9;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user