Fix some Coverity warnings
This commit is contained in:
@@ -69,7 +69,7 @@ public:
|
|||||||
virtual int load (const Glib::ustring &fname) = 0;
|
virtual int load (const Glib::ustring &fname) = 0;
|
||||||
virtual void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) {};
|
virtual void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) {};
|
||||||
virtual void demosaic (const RAWParams &raw) {};
|
virtual void demosaic (const RAWParams &raw) {};
|
||||||
virtual void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, ToneCurveParams Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {};
|
virtual void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {};
|
||||||
virtual void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {};
|
virtual void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {};
|
||||||
virtual void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI) {};
|
virtual void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI) {};
|
||||||
virtual void flushRawData () {};
|
virtual void flushRawData () {};
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ void ImProcFunctions::Lanczos (const Imagefloat* src, Imagefloat* dst, float sca
|
|||||||
float y0 = (static_cast<float> (i) + 0.5f) * delta - 0.5f;
|
float y0 = (static_cast<float> (i) + 0.5f) * delta - 0.5f;
|
||||||
|
|
||||||
// weights for interpolation in y direction
|
// weights for interpolation in y direction
|
||||||
float w[support];
|
float w[support] = {};
|
||||||
|
|
||||||
// sum of weights used for normalization
|
// sum of weights used for normalization
|
||||||
float ws = 0.0f;
|
float ws = 0.0f;
|
||||||
|
|||||||
@@ -2360,7 +2360,7 @@ void RawImageSource::retinexPrepareCurves(const RetinexParams &retinexParams, LU
|
|||||||
retinexParams.getCurves(retinextransmissionCurve, retinexgaintransmissionCurve);
|
retinexParams.getCurves(retinextransmissionCurve, retinexgaintransmissionCurve);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexParams &deh, ToneCurveParams Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI)
|
void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI)
|
||||||
{
|
{
|
||||||
MyTime t4, t5;
|
MyTime t4, t5;
|
||||||
t4.set();
|
t4.set();
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ public:
|
|||||||
int load (const Glib::ustring &fname);
|
int load (const Glib::ustring &fname);
|
||||||
void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true);
|
void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true);
|
||||||
void demosaic (const RAWParams &raw);
|
void demosaic (const RAWParams &raw);
|
||||||
void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, ToneCurveParams Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI);
|
void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI);
|
||||||
void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI);
|
void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI);
|
||||||
void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI);
|
void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI);
|
||||||
void flushRawData ();
|
void flushRawData ();
|
||||||
|
|||||||
@@ -49,19 +49,48 @@ void adjust_radius (const T &default_param, double scale_factor, T ¶m)
|
|||||||
class ImageProcessor
|
class ImageProcessor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ImageProcessor (ProcessingJob* pjob, int& errorCode,
|
ImageProcessor(
|
||||||
ProgressListener* pl, bool flush):
|
ProcessingJob* pjob,
|
||||||
|
int& errorCode,
|
||||||
|
ProgressListener* pl,
|
||||||
|
bool flush
|
||||||
|
) :
|
||||||
job (static_cast<ProcessingJobImpl*> (pjob)),
|
job (static_cast<ProcessingJobImpl*> (pjob)),
|
||||||
errorCode (errorCode),
|
errorCode (errorCode),
|
||||||
pl (pl),
|
pl (pl),
|
||||||
flush (flush),
|
flush (flush),
|
||||||
// internal state
|
// internal state
|
||||||
ipf_p (nullptr),
|
ii(nullptr),
|
||||||
ii (nullptr),
|
imgsrc(nullptr),
|
||||||
imgsrc (nullptr),
|
fw(0),
|
||||||
fw (-1),
|
fh(0),
|
||||||
fh (-1),
|
tr(0),
|
||||||
pp (0, 0, 0, 0, 0)
|
pp(0, 0, 0, 0, 0),
|
||||||
|
calclum(nullptr),
|
||||||
|
autoNR(0.f),
|
||||||
|
autoNRmax(0.f),
|
||||||
|
tilesize(0),
|
||||||
|
overlap(0),
|
||||||
|
ch_M(nullptr),
|
||||||
|
max_r(nullptr),
|
||||||
|
max_b(nullptr),
|
||||||
|
min_b(nullptr),
|
||||||
|
min_r(nullptr),
|
||||||
|
lumL(nullptr),
|
||||||
|
chromC(nullptr),
|
||||||
|
ry(nullptr),
|
||||||
|
sk(nullptr),
|
||||||
|
pcsk(nullptr),
|
||||||
|
expcomp(0.0),
|
||||||
|
bright(0),
|
||||||
|
contr(0),
|
||||||
|
black(0),
|
||||||
|
hlcompr(0),
|
||||||
|
hlcomprthresh(0),
|
||||||
|
baseImg(nullptr),
|
||||||
|
labView(nullptr),
|
||||||
|
autili(false),
|
||||||
|
butili(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -814,7 +843,7 @@ private:
|
|||||||
if (params.fattal.enabled) {
|
if (params.fattal.enabled) {
|
||||||
ipf.ToneMapFattal02(baseImg);
|
ipf.ToneMapFattal02(baseImg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// perform transform (excepted resizing)
|
// perform transform (excepted resizing)
|
||||||
if (ipf.needsTransform()) {
|
if (ipf.needsTransform()) {
|
||||||
Imagefloat* trImg = nullptr;
|
Imagefloat* trImg = nullptr;
|
||||||
|
|||||||
@@ -1116,13 +1116,13 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb)
|
|||||||
|
|
||||||
Array2Df Yr (w, h);
|
Array2Df Yr (w, h);
|
||||||
|
|
||||||
const float epsilon = 1e-4f;
|
constexpr float epsilon = 1e-4f;
|
||||||
const float luminance_noise_floor = 65.535f;
|
constexpr float luminance_noise_floor = 65.535f;
|
||||||
const float min_luminance = 1.f;
|
constexpr float min_luminance = 1.f;
|
||||||
const auto unclipped =
|
const auto unclipped =
|
||||||
[=](int y, int x) -> bool
|
[rgb](int y, int x) -> bool
|
||||||
{
|
{
|
||||||
const float c = 65500.f;
|
constexpr float c = 65500.f;
|
||||||
return rgb->r(y, x) < c && rgb->g(y, x) < c && rgb->b(y, x) < c;
|
return rgb->r(y, x) < c && rgb->g(y, x) < c && rgb->b(y, x) < c;
|
||||||
};
|
};
|
||||||
TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix (params->icm.working);
|
TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix (params->icm.working);
|
||||||
@@ -1200,16 +1200,16 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb)
|
|||||||
const float wr = float(w2) / float(w);
|
const float wr = float(w2) / float(w);
|
||||||
|
|
||||||
const float scale = 65535.f / std::max(L(max_x * wr + 1, max_y * hr + 1), epsilon) * (65535.f / Yr(max_x, max_y));
|
const float scale = 65535.f / std::max(L(max_x * wr + 1, max_y * hr + 1), epsilon) * (65535.f / Yr(max_x, max_y));
|
||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel for schedule(dynamic,16) if(multiThread)
|
#pragma omp parallel for schedule(dynamic,16) if(multiThread)
|
||||||
#endif
|
#endif
|
||||||
for (int y = 0; y < h; y++) {
|
for (int y = 0; y < h; y++) {
|
||||||
int yy = y * hr + 1;
|
int yy = y * hr + 1;
|
||||||
|
|
||||||
for (int x = 0; x < w; x++) {
|
for (int x = 0; x < w; x++) {
|
||||||
int xx = x * wr + 1;
|
int xx = x * wr + 1;
|
||||||
|
|
||||||
float Y = Yr (x, y);
|
float Y = Yr (x, y);
|
||||||
float l = std::max (L (xx, yy), epsilon) * (scale / Y);
|
float l = std::max (L (xx, yy), epsilon) * (scale / Y);
|
||||||
rgb->r (y, x) = std::max (rgb->r (y, x), 0.f) * l;
|
rgb->r (y, x) = std::max (rgb->r (y, x), 0.f) * l;
|
||||||
|
|||||||
Reference in New Issue
Block a user