Introducing color calibration module (formerly known as channel mixer rgb)

Even with XYZ pipeline, imaginary colors result in negative values that break the powers and logs, and make every hue/saturation (no matter the color model used : HSL, HSV, Lch etc.) fail. It’s impossible to do color grading robustly on non-data.

2 Likes

A small demo of what can be acheived using the brightness tab:
orginal photo:

completely changing the mood of the photo using the brightness tab:

This technique is taken from @s7habo videos were he used the channel mixer in grey mode with lightness blending to achieve such effect (thank you @s7habo for these videos!).
The good news is that we can now do the same with the brightness tab which preserves the color ratios :slight_smile:

18 Likes

I think I know what I understood wrong. XYZ is a tristimulus (a perceptual) colorspace, not a physical one. Whitebalancing tries to mimick the perceptual process of adaptation. Imaginary colors are stimuli of cones which spectral/physical colors cannot produce. Imaginary colors can be perceived during the adaptation process for short amounts of time (you can see imaginary colors), but the math is rather complex.
During Whitebalancing physical colors are pushed beyond the spectral locus, but this is dependant on the algorithm used for whitebalancing.
I think my hangup was that I immediately want a WB operator which keeps monochromatic colors, which are perceived at the edge of the tristimulus-locus in XYZ, at this edge and not push them over board. I see now that the gamut compression tries to do that.

Thanks! (and sorry) :smile:

Amazing!


9 Likes

Well, XYZ is the portal between physics and retina.

2 Likes

Was there something factually wrong with what I wrote? I am always eager to learn.

You wrote that XYZ is perceptual. It’s both right and wrong, and in the hocus-pocus world of color science, one has to be very careful with words. XYZ is not perceptually-scaled, it’s still linear light compared to scene emission. “Perceptually-scaled” is what people mean most of the time, when they say “perceptual”. But XYZ is retina cones response, so it’s physiological. And, well, physiology is the first tiny part of perception, so you could say XYZ is perceptual in that way.

I’m being pedantic here because people on the internet read words and stop at them, while they should spend more time on the concepts being referred to through these labels (forget the label, open the can). On the internet you can read things like “gamma-encoded RGB is perceptual” and that’s absolutely wrong. The power function makes it a little bit more perceptually scaled, but no RGB space is hue linear and has homogeneous MacAdams ellipses.

Point being, we can still do physics on XYZ, like emulating optical filters with multiply operators, and such.

5 Likes

Thanks for that, I see the difference between ‘perceptual’ and ‘physiological’ and would now rephrase my above writing to:

XYZ is a tristimulus (a physiological) colorspace, not a full-spectrum physical one.

I don’t mind pedantic at all, especially when half-right and half-wrong statements can get mixed and propagated and lead to somewhat false understanding of things.

More specifically, in ICC-land linear XYZ is the connection colorspace in any colorspace transform. ICC profiles contain the information to transform to-from their pet colorspace and tone to linear XYZ, so a ICC transform from A to B is done in two steps: A → XYZ, then XYZ → B. Mathematically, the color transform can be done “VFR-direct”, to steal an aviation term, that is, A → B, but profiles would then need information for all possible destinations to make this work. BTW, ICC also lets one use LAB instead of XYZ as this “connection space”.

@PhotoPhysicsGuy, I think you know all this, but I’m writing to fill in the cracks for the rest of us… :laughing:

3 Likes

I am happy to hear this all over again, turns out it doesn’t harm to hear things twice with different perspectives or contexts on the matter.

(For example I didn’t know about LAB as a connection space! Using LAB as a connection space sounds like a terrible idea for certain applications. But I am quite sure there is a ‘good’ reason why it became a possibility in ICC-land.)

1 Like

Connection spaces are just convenience spaces though. There is no meaning to search in Lab or XYZ being connection spaces, except that they are independent from any medium. Since Lab is computed from XYZ, we don’t care at all. Unless something else than the pure conversion happens in Lab (but it’s really not the worse space to do gamut mapping).

Thanks @anon41087856 for creating this module. But a humble request from a non mathematician to provide a guide in the usage of this module to get the best out of it.
Thanks again

@Rajkhand – we’ve made a start on drafting the user manual entry for color calibration. You can find it here: https://elstoc.github.io/dtdocs/module-reference/processing-modules/color-calibration/.

2 Likes

Chris this reference you are building is awesome…one question about usability…if you try to print a section currently say to a pdf or just to paper to read it you have the whole side bar and the text essentially prints as laid out on the screen using essentially the right hand side. I wonder if any one knows how to include a print button to format this as the whole page so its larger and more readable and not wasting paper…I know …paper what is that but sometimes its nice to just read from paper…apparently it commits to memory better :slight_smile: anyway just something I noticed…

1 Like

There is a way to build pdf if you look at GitHub - elstoc/dtdocs. You need to clone from git and install a couple of packages but it’s not too complicated. When we release dtdocs officially we will produce a pdf as well. If you want us to look in to a “print from page” option please raise a feature request and we’ll look into it.

1 Like

After playing with “auto enable chromatic adaptation defaults” setting and reverting back to legacy. All my images now have the wrong white balance settings when setting to “As shot” white balance.

All images now default to “user modified” settings in the white balance module. And seem to have the settings that “As shot” setting should have had.
“As shot” setting doesn’t work anymore. Every channel coefficient is set to 1.

Is this a bug or a feature that I missed?

Looks like White balance: Wrong output vs settings combo + green image using as shot button (legacy) · Issue #6926 · darktable-org/darktable · GitHub, which was fixed a few hours ago

3 Likes

Thanks! I tested the update. It’s fixed now :smiley:

All good I just routinely print things to pdf…easiest way for me. And I can still do this but if you want to print a topic from this as it stands now you lose a the left third of the page…I just though it might be an easy thing to employ. I print lots of webpages with banners and the like and many but not all can print without the surrounding banners boxes etc…its not a big deal just noticed it when I went to print off the new channel mixer section to have a read…A thought I have 2 or three PDF printers installed for various reasons…maybe its specific. I have noted some pdf files over the years only print correctly from Adobe and not other solutions …I’ll check but no bother either way…

1 Like

I’ve raised a feature request on the project so it doesn’t get forgotten.