I can’t get RawTherapee to preserve all the highlights in an image.
My image is near-white on one side of the frame, and near-black on the other side. The object and exposure was such that it shouldn’t be clipped on either end – the histogram displayed by Canon’s remote capture program was bi-modal, with a peak at either end, about 10% from the ends.
Here’s the raw file: https://filebin.net/jvrv6zikwj10apby/rtClippingDemo.CR2
I set profile to Neutral.
That displays a histogram in RT like this:
(I don’t understand why the histogram is crushed to the right.)
Then:
- click ‘auto levels’
- set Clip % to 0
When I click ‘auto levels’, the histogram shifts to this:
which is similar to what I saw when I took the photo – great. However, when I run the mouse over the white part of the photo, which has a slight intensity gradient due to being illuminated from the side, half the near-white part of the image is stuck at pixel values of [235, 235, 235]. I think that’s because they were clipped in the processing pipe. (Due to noise, there’s no way the image has exactly those values over such a large area.)
(The pixel values at the mouse are displayed by RT as small lines under the histogram. They flicker nicely as three closely-spaced coloured lines over part of the white area in the image but then become a single white line under the histogram – stuck at 235 – over the other half of the image’s near-white area.)
I gather RT uses dcraw. After experimenting with dcraw for a while, I think what is happening is that dcraw might be clipping the highlights (even with -h 1) before scaling. Perhaps it should instead scale first and then, if necessary, clip.
In any case, is there any way to have RT not clip the values in the image referenced above? (Or, perhaps equivalent, is there a way to get dcraw not to clip any values?)
I’m not sure what ‘Highlight reconstruction’ does. The phrase is worrisome. Does it mean ‘highlight preservation’?
If RT is using dcraw, what does ‘auto levels’, 0 clipping, and ‘highlight reconstruction’ translate to in terms of dcraw options? (Is there a way at the user level to see what dcraw options are being used by any particular RT settings, as a sort of status report and helpful info?)
For a given camera model, isn’t there a fixed per-channel level corresponding to 100% saturated? If so, could RT (and dcraw) scale to that, such that pixels at, say, 95% get a final value of ‘95%’ (whatever that is after gamma), rather than scaling things to 100% or, gasp, beyond (clipping the top 0.02%)? I don’t want this image to be maxed out at white, I would like it to be as exposed ‘as shot’, at about 90% of max.
I’d appreciate any help regarding what I’m missing/misunderstanding here.
Branch: gtk3
Version: 4.2.1375
Changeset: a07f92c3793273aba07bbf50adc55b1689bccbfa
Compiler: gcc 5.3.0
Processor: generic x86
System: Windows
Bit depth: 64 bits
Gtkmm: V3.18.0
Build type: release
Build flags: -m64 -mwin32 -mthreads -std=gnu++11 -mtune=generic -Werror=unused-label -fopenmp -Werror=unknown-pragmas -msse -msse2 -mwindows -fopenmp -Wno-aggressive-loop-optimizations -DNDEBUG -O3
Link flags: -m64 -mwin32 -mthreads -static-libgcc -mtune=generic -mwindows -s -O3
OpenMP support: ON
MMAP support: ON