[Color Calibration] Why do individual grey tab sliders change histogram for RGB channels equally?

Trying to get my head around how the grey tab works for creating monochrome images. Was used to the channel mixer before it got deprecated.

When moving an individual slider, one notices all three channels move in the histogram. Can be seen using individual RGB channels of the histogram.

The dev (Chris Elston) mentioned

You’re not understanding how the grey tab works here. “Grey” means that on output all RGB components are equal (i.e. grey). When you shift any of the input sliders you are changing the output of all R,G and B components equally based on the input RGB components

Why have 3 sliders when moving any slider, changes the values for the other 2 in equal steps and is not reflective on the sliders?

My intent is to get monochrome always but varying the individual channel intensity (not sure if intensity is the correct word).
Similarly, if I move the sliders in the brightness tab, RGB are all impacted.
e.g. I may at time want the skies darker so varying the blue should get me that effect.
If there is way to do that, please do point me in that direction.

Have you already read

and
https://darktable-org.github.io/dtdocs/module-reference/processing-modules/color-calibration/
?

Yes I have. Unfortunately doesn’t solve my confusion or answer any of the questions.

The difference is here between input and output.
You tell the module “I want the output to be gray”. The implies that in the output, the values for red green and blue must be the same, and it’s that output that is represented in the histogram.

Now, on the input side, you can vary the relative weights of red, green, and blue. The module will take care of the translation of colour into gray tones based on those relative weight of the three channels, and the colour of the pixel.

To pick up your blue sky example: what happens if you push the blue input slider to a very low value (and increase red and green to make life easy on the module)?

And do check out @anon41087856’s use of the brightness tab in the thread presenting this module (the two photos of a sunset, where he increases the red brightness and lowers the blue).

It’s normal to see all colours affected in both brightness and gray mode: the colour spaces we use have three dimensions/axes. either red|green|blue or brightness|coloration1|coloration2.
It’s important to keep in mind that those are different representations of the same underlying data. As such, transformations between them are a simple mathematical operation.
Grayscale is a special case where you force extra relations between the dimensions, leaving you with variations possible in only one of the dimensions.

In both gray and brightness mode, you do not want to change the two coloration dimensions (chroma|saturation, a|b, hue|saturation, however you want to call them) for your output. Thus, any change in one input colour channel must lead to a change in all three colour channels in the output (which is what the histogram shows).(*)
But for an individual pixel, the change in the output will depend on how much of the colour channel you changed is in that pixel’s original colour. E.g. 10% red → only 10% of the change for the red channel will be applied.

(* : A 2D example could be the relation between Carthesians coordinates (x,y) vs polar coordinates (r,φ),
when you change xn keeping y constant, both r and φ will change. Vice versa, change either r, (or φ,) and both x and y will change.)

1 Like

It just means that the value of ‘grey’ is made up by the incoming red, green and blue with the contributions you specify (if they don’t add up to 0). Same as old channel mixer’s grey tab. The new setting is the normalisation: it’ll try to maintain overall brightness.

Brightness: you don’t simply remove blue etc. when you decrease the sliders. Instead, you change the brightness (the values of all channels) of a pixel depending how much R, G and B the pixel has, while trying to avoid colour shifts. So reducing B will darken your blue sky, but not turn it yellow. Same goes for the saturation tab: you can selectively reduce the saturation, depending how much blue (or red, or green) a pixel has.

1 Like

I wasn’t seeing it that way, this helps tremendously in understanding this.Thank you.

In which tab? Grey allows a minimum of 0 and when I did right-click and set it to negative, the slider never resets to the left side so I stopped doing it. It was stated in a DT ticket, thats how sliders work.

I have read that. :slight_smile:

What is coloration 1 and 2?

I will be honest, I know how matrices multiply but thats about it, don’t understand the reasoning to do so, never really paid attention to the use cases of it.

Thank you for taking the time to respond and clarifying this.

Yeah, I wasn’t trying to remove the color or change it, I get what you are saying.
I will play around with the tabs and see the impact of changes in the RGB colourfulness and brighter tabs on the grey tab.

Thank you for taking the time to respond.

To describe colours the way it’s done in photography, you need three dimensions. But there’s a great freedom in how you pick those dimensions. RGB is one way, HSV is another.
You can also extract brightness (or luminosity) as one dimension, but you’ll still need two extra, I decided to call those coloration1 and coloration2 (as in this case only the brightness interested us).

Btw, all those different ways of expressing a colour are just different ways to look at a color, they do not change the colour. And transformation between such bases is a straightforward mathematical operation.