Fix crash when opening multi-frame images

Fix source of raw data when calculating raw minimum values for raw
de-haze.
This commit is contained in:
Lawrence Lee 2024-11-24 12:04:54 -08:00
parent 3e8d581194
commit 2a6b79fb0c
No known key found for this signature in database
GPG Key ID: 048FF2B76A63895F
2 changed files with 6 additions and 6 deletions

View File

@ -2690,9 +2690,9 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, con
*/ */
if (ri->getSensorType() == ST_BAYER) { if (ri->getSensorType() == ST_BAYER) {
getMinValsBayer(ri->zeroIsBad()); getMinValsBayer(rawData, ri->zeroIsBad());
} else { } else {
getMinValsXtrans(); getMinValsXtrans(rawData);
} }
// //
reddeha = minVals[0]; reddeha = minVals[0];
@ -8384,7 +8384,7 @@ void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int
/* /*
Copyright (c) Ingo Weyrich 2020 (heckflosse67@gmx.de) Copyright (c) Ingo Weyrich 2020 (heckflosse67@gmx.de)
*/ */
void RawImageSource::getMinValsXtrans() { void RawImageSource::getMinValsXtrans(const array2D<float> &rawData) {
#ifdef _OPENMP #ifdef _OPENMP
#pragma omp parallel for reduction (min:minVals) #pragma omp parallel for reduction (min:minVals)
#endif #endif
@ -8530,7 +8530,7 @@ void RawImageSource::applyDngGainMap(const float black[4], const std::vector<Gai
/* /*
Copyright (c) Ingo Weyrich 2020 (heckflosse67@gmx.de) Copyright (c) Ingo Weyrich 2020 (heckflosse67@gmx.de)
*/ */
void RawImageSource::getMinValsBayer(bool zeroIsBad) { void RawImageSource::getMinValsBayer(const array2D<float> &rawData, bool zeroIsBad) {
BENCHFUN BENCHFUN
if (!zeroIsBad) { if (!zeroIsBad) {
#ifdef _OPENMP #ifdef _OPENMP

View File

@ -310,8 +310,8 @@ protected:
void vflip (Imagefloat* im); void vflip (Imagefloat* im);
void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override; void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override;
void captureSharpening(const procparams::CaptureSharpeningParams &sharpeningParams, bool showMask, double &conrastThreshold, double &radius) override; void captureSharpening(const procparams::CaptureSharpeningParams &sharpeningParams, bool showMask, double &conrastThreshold, double &radius) override;
void getMinValsXtrans(); void getMinValsXtrans(const array2D<float> &rawData);
void getMinValsBayer(bool zeroIsBad); void getMinValsBayer(const array2D<float> &rawData, bool zeroIsBad);
void applyDngGainMap(const float black[4], const std::vector<GainMap> &gainMaps); void applyDngGainMap(const float black[4], const std::vector<GainMap> &gainMaps);
public: public:
void wbMul2Camera(double &rm, double &gm, double &bm) override; void wbMul2Camera(double &rm, double &gm, double &bm) override;