Gamma curve and increasing the exposure
I am really stumped on this problem, and couldn't find the answer anywhere.
After I manually process the raw stuff, I am getting nice colors and everything. I apply a gamma curve of 2.2 and all is fine. I build and store my gamma curve in an array with this function (it's just a hack):
//gamma is a double of 2.2 for(i=0;i<65535;i++) { double i_double=i; resulting_gamma=pow(i_double/(double)channels_max,1.0f/gamma); color_curve[i]=resulting_gamma*255; }
Channels max is the maximum color of any channel.
This function works well, as it places all the values of any given sRGB in a 0 to 1f range.
The problem is when I want the increase the exposure, and I multiply all the pixels (just after the WB step) with a certain value. While the pixels will have a new value, they will still be in the same range of 0-1f like before, and nothing will change. So I guess that instead of using channels_max I should use something else. But to what value should I change it, if not to the max value?
I could also apply the exposure AFTER the gamma curve, but then I guess some of the details might be lost? In all the places where I read it, the exposure compensation should be done before the gamma curve.
Thanks for reading!
Recent comments