Photoflow (Hue preserved but some banding on the left)
IMG_3129.pfi (47.2 KB)
Darktable with no preserving chrominance v5 (very smooth gradients but yellow hue-shift)
Darktable with no preserving chrominance v6
IMG_3129.CR2.xmp (9.4 KB)
Photoflow (Hue preserved but some banding on the left)
Darktable with no preserving chrominance v5 (very smooth gradients but yellow hue-shift)
Darktable with no preserving chrominance v6
IMG_3129.CR2.xmp (9.4 KB)
wow seems to be hard to get colour right on this one. tried vkdt
:
using a spectral input profile and set white balance to around 4000K such that it wouldn’t only be red.
thanks for posting
darktable 4.0
Add a new one
Thanks for sharing!
dt 3.9.0 + sigmoid
a slightly warmer version by tweaking color calibration:
I really like the soft tones and the colours in this one.
Thank you @age for bring this nice image up after 3 years
Hier is my edit:
Darktable 4.0.0 IMG_3129.CR2.xmp (21.3 KB)
Little improvement on my tonemapping using the power-norm for smoother gradients (no more banding on the wall on the left)
IMG_3129.pfi (49.8 KB)
i=[r,g,b]
max=max(r,g,b)
min=min(r,g,b)
lum=(r^3+g^3+b^3)/(r^2+g^2+b^2)
rtm=(1-(pivot/((r/gray)^power+pivot))) // tone mapping or simple tone curve on the red channel
gtm=(1-(pivot/((g/gray)^power+pivot)))// tone mapped or simple tone curve on the green channel
btm=(1-(pivot/((b/gray)^power+pivot)))// tone mapped or simple tone curve on the blu channel
crgbtm=[rtm,gtm,btm]
maxtm=max(rtm,gtm,btm)
mintm=min(rtm,gtm,btm)
lumtm=(rtm^3+gtm^3+btm^3)/(rtm^2+gtm^2+btm^2)
chromatm=1-(mintm/lumtm)
chroma2=1-(min((r-lum+lumtm),(g-lum+lumtm),(b-lum+lumtm))/lumtm)
chromamult=if(chromatm==0||chroma2==0,0,chromatm/chroma2)
i=[r,g,b]
final_image=((i-lum)*chromamult+lumtm)*0.60+crgbtm*0.40;
That’s very nice! It’s your tool open source? Do you have a link?
Right now it is a G’mic script that I use in Photoflow from the G’mic interpreter
-fill power=1.40;gray=0.18;pivot=(1-gray)/gray;max=max(i0,i1,i2);min=min(i0,i1,i2);lum=(i0^3+i1^3+i2^3)/(i0^2+i1^2+i2^2);i0tm=(1-(pivot/((i0/255/gray)^power+pivot)))*255;i1tm=(1-(pivot/((i1/255/gray)^power+pivot)))*255;i2tm=(1-(pivot/((i2/255/gray)^power+pivot)))*255;crgbtm=[i0tm,i1tm,i2tm];maxtm=max(i0tm,i1tm,i2tm);mintm=min(i0tm,i1tm,i2tm);lumtm=(i0tm^3+i1tm^3+i2tm^3)/(i0tm^2+i1tm^2+i2tm^2);chromatm=1-(mintm/lumtm);chroma2=1-(min((i0-lum+lumtm),(i1-lum+lumtm),(i2-lum+lumtm))/lumtm);chromamult=if(chromatm==0||chroma2==0,0,chromatm/chroma2);chromamult=if(chromamult<0,0,chromamult);i=[i0,i1,i2];i=((i-lum)*chromamult+lumtm)*0.60+crgbtm*0.40;
dev
Another , and sadly I will not continue to try something new, is to copy the hue from CIE xyY to the rgb tonemmaped image
(Edit: It seems the copying the hue from xyy is better for noisy images)
in this case I blended the hue from xyY at only 60% strength
IMG_3129xyy.pfi (47.7 KB)
CIE xyY is not a perceptual color space so if we blend the hue at 100% strength we could get pinkish colors, for example the fire test image turn to this
Blended at 60%
Hi @age, it’s been nice to follow your experiments. The results look quite nice. I would like to ask for a couple of clarifications:
(r / norm, g / norm, b / norm)
by the tonemapped norm? I.e. final RGB (color preserving) = tonemapped norm / original norm * (r, g, b)
. This is the way it’s done in filmic. If I understand correctly, your approach is to rather adjust the amount of white in the pixel.The reason I’m curious because there have ideas thrown around in IRC about a possible filmic v7 which would allow the user to mix between the individual RGB processing result and the norm-preserving result, and additionally a control for the degree of hue preservation. This shares some similarity with your approach and would certainly allow for some flexibility over a strict chromaticity preserving approach.
P.S. moderators, if you see this spinning totally off-topic for this thread, please feel free to split it. However I wanted to ask here because @age has posted nice results from their tone-mapping and also code in this thread so the context is here.
No, I just let rgb channels hard clipping
Yes, sadly when used with a sigmoid shaped tonemapper shadows looks too much desaturated and highlights have too much or too low saturation.
My approach is simply copy the hue channel from the image before tonemapping to the rgb per channel tonemapped image
I don’t think, however the film-like curves used in Rawtherappe (developed by Adobe) are just the equivalent of blending the hue from the HSV color space to the rgb tonemapped image
Yes
https://discuss.pixls.us/t/oklab-cielab-linear-cielab-tonemapping/28767
The main issue with this method is that it removes way too much saturation from red,orange,yellows hues
However copying only the hue from oklab to the rgb tonemapped image it would be better , I haven’t test it, yet