diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 411bb0823..bc5e973e2 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -847,21 +847,22 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b green[i][j] = clipfix[1] * factor; blue[i][j] = clipfix[2] * factor; } else {//some channels clipped + const float eps = 0.0001f; int notclipped[3] = {pixel[0] < max_f[0] ? 1 : 0, pixel[1] < max_f[1] ? 1 : 0, pixel[2] < max_f[2] ? 1 : 0}; if (notclipped[0] == 0) { //red clipped red[i][j] = max(red[i][j], (clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / - (notclipped[1] * clipfix[1] + notclipped[2] * clipfix[2])))); + (notclipped[1] * clipfix[1] + notclipped[2] * clipfix[2] + eps)))); } if (notclipped[1] == 0) { //green clipped green[i][j] = max(green[i][j], (clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / - (notclipped[2] * clipfix[2] + notclipped[0] * clipfix[0])))); + (notclipped[2] * clipfix[2] + notclipped[0] * clipfix[0] + eps)))); } if (notclipped[2] == 0) { //blue clipped blue[i][j] = max(blue[i][j], (clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / - (notclipped[0] * clipfix[0] + notclipped[1] * clipfix[1])))); + (notclipped[0] * clipfix[0] + notclipped[1] * clipfix[1] + eps)))); } } diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 6381c45b6..3194e2f32 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -950,7 +950,7 @@ int RawImageSource::interpolateBadPixelsXtrans( PixelsMap &bitmapBads ) * (Taken from Emil Martinec idea) * (Optimized by Ingo Weyrich 2013 and 2015) */ -int RawImageSource::findHotDeadPixels( PixelsMap &bpMap, float thresh, bool findHotPixels, bool findDeadPixels ) +SSEFUNCTION int RawImageSource::findHotDeadPixels( PixelsMap &bpMap, float thresh, bool findHotPixels, bool findDeadPixels ) { float varthresh = (20.0 * (thresh / 100.0) + 1.0 ) / 24.f;