- values.gamma_g = logf(maxima_r / minima_r) / logf(maxima_g / minima_g);
- values.gamma_b = logf(maxima_r / minima_r) / logf(maxima_b / minima_b);
+ bclamp(minima_r, 1e-6, 1-1e-6); bclamp(maxima_r, 1e-6, 1-1e-6);
+ bclamp(minima_g, 1e-6, 1-1e-6); bclamp(maxima_g, 1e-6, 1-1e-6);
+ bclamp(minima_b, 1e-6, 1-1e-6); bclamp(maxima_b, 1e-6, 1-1e-6);
+ float log_r = logf(maxima_r / minima_r);
+ float log_g = logf(maxima_g / minima_g);
+ float log_b = logf(maxima_b / minima_b);
+ if( log_g < 1e-6 ) log_g = 1e-6;
+ if( log_b < 1e-6 ) log_b = 1e-6;
+ values.gamma_g = log_r / log_g;
+ values.gamma_b = log_r / log_b;