I thought this would be a simple release, posted months ago. Best-laid plans, and all that…
Only two new tools, whitebalance and demosaic.
whitebalance seemed straightforward, I was just going to provide a multiplier-based interface because I really don’t get using color temperature once the image is recorded. So, you can mess with image patches, ‘gray world’ automatic, the camera multipliers extracted from the metadata, and manual manipulation of the individual multipliers. Seems simple, but the logic for selection and recording of the alternatives took a while longer to divine; if anyone has problems with it, let me know soonest.
demosaic is just a 15-minute hack of ‘half’; I’m now going to finish my raw processing tutorial and build a supporting custom AppImage that will support it, hence the need for a demosaic tool in addition to the internal stuff Libraw/dcraw does. However, I think I’m going to start using it for my proof processing; the destination image size is 800x600, so cutting the image size in half with half-demosaic is just a step in that direction. Others have pointed out that half produces its own artifacts, but for proof processing I think it’ll be fine. At any rate, I will engage in some pixel inspection to see how that actually plays out.
Implementing both of these tools led to significant learning on my part, culminating with the discourse in the GIMP 2.10.6 out-of-range RGB values from .CR2 file - #203 by Elle thread. I now know a lot more about the role of the reference white in the camera profile, to the extent that I’m now going to evaluate using the profile to capture all camera performance and eliminate (well, probably greatly reduce) the need for the whitebalance tool I spent all that quality time figuring out. Shameless plug, I think rawproc is now an excellent tool for producing TIFFs for camera profiling: you can easily open a raw file with no processing, and very deliberately apply only the processing you want to not account for in producing the camera profile. The property
input.raw.libraw.rawdata=clip
will put the raw data directly in the toolchain, unmodified except for a conversion from 16-bit integer to three-channel monochrome float, RGGB quads where R=G=B in each quadrant. demosaic and whitebalance know the difference between that and a ‘regular’ RGB image when applying their transforms. Set rawdata=clip, turn off cms (input.cms=0, probably not necessary but made me feel comfortable with what I was looking at), open the raw, apply demosaic, and save to TIFF.
The discussions here are greatly influencing my development, thanks to all, and I do mean all of you for contributing in this regard. Even @chroma_ghost, jeje…
For 0.9, I’m going to investigate and probably implement:
- LUT tool
- A more insightful histogram and image statistics capability
- DCP profiles, and possibly workflow to make them easy to use ‘per session’
- Log transform (after all the discussion, I’d be remiss…)
- Reinhart tone mapping
Keeps me out of the bars…