Three ways to modify saturation using GIMP 2.9/2.10 LCH color tools
There are many ways to modify saturation. This tutorial describes how to modify saturation using three LCH-based operations in high bit depth GIMP 2.9/2.10, that were not available in previous versions of GIMP.
Written December 2017.
Introduction: Three ways to modify saturation using LCH
This tutorial describes three ways to modify saturation using LCH-based operations in high bit depth GIMP 2.9/2.10:
- Use the GEGL Saturation tool ("Colors/Saturation" — make sure to not accidentally use "Colors/Hue-Saturation"!)
- Use the Chroma slider in the Hue-Chroma tool ("Colors/Hue-Chroma")
- Use "Colors/Exposure" combined with the LCH Chroma layer blend mode — results are similar or identical to using "Colors/Saturation"
This tutorial was inspired by a very interesting thread on the pixls.us discussion forum: Color Choosing Paradox, also Warmer vs Cooler.
Adding saturation to isolated dots of color
The "Colors/Saturation" operation modifies LCH Chroma. The Chroma slider in the "Colors/Hue-Chroma" also modifies LCH Chroma. But results from these two operations are very different.
In the "color dots" image below there are three bright warm orange colors and six almost achromatic colors, all sampled from a painting by Brien Dieterle (the actual painting is shown in the third post to this pixls.us thread: Color Choosing Paradox, also Warmer vs Cooler):
So why these radically different results, if both operations involve modifying the LCH Chroma channel?
- The GEGL Saturation slider multiplies the original color's LCH Chroma by the slider value — in other words, the Chroma is increased proportionately to the slider value.
- Moving the Chroma slider in the Hue-Chroma tool adds the requested amount of additional Chroma to the Chroma of the original color, which of course is not even close to being a proportional change.
So consider the six originally nearly achromatic colors: Using the "Colors/Saturation" tool to multiply a very low Chroma values by 2.5 produces Chroma values that are still fairly low (for example, 2 times 2.5 is 5). But using the Chroma slider in the Hue-Chroma tool to add 30 Chroma units to the originally low-Chroma colors produces colors with Chromas greater than 30 (for example, 2 plus 30 is 32), which makes the resulting colors saturated enough you can readily observe "that's yellow-green, that's cyan", etc.
Which is better, using "Colors/Saturation" or the "Colors/Hue-Chroma" Chroma slider? plus how to make a Chroma mask
Usually "Color/Saturation" is the better choice for adding saturation to an image, but you'll probably want to use a Chroma mask
OK, you might think that using the Chroma slider in the Hue-Chroma tool is the better way to add saturation to an image, because using "Colors/Saturation" on the "color dots" image simultaneously oversaturated the bright orange colors and hardly changed the other colors at all. But as Brien Dieterle (@briend) pointed out in a thread on the pixls.us discussion forum, "color is extremely contextual. That is, if you’re painting or trying to add color to something, the actual color perceived doesn’t exist until you’ve already put the paint on the canvas and viewed in context with the rest of the colors on the canvas (or photo, etc)."
So the real question is which way of adding saturation produces the nicest results in actual photographs and paintings, not in isolated color dots. So let's use both ways of adding saturation not to color samples from Brien Dieterle's painting, but to the actual painting. First, here's the original painting:
And now here's the painting after adding saturation:
For a second example of adding saturation to an image, I downloaded a public domain portrait by Jan van Eyck, which confirms the difference between using the Gegl Saturation tool and using the Chroma slider in the Hue-Chroma tool:
Making and using a Chroma mask
There might be times when you really do want to strongly saturated any achromatic colors, in which case the Chroma slider from "Colors/Hue-Chroma" is the right tool for the task. But otherwise, if the goal is to add saturation proportionately, use "Colors/Saturation". However, either way you go, after adding saturation very often some of the colors are likely to look way too saturated. Results are often more natural and pleasing if you use a "Chroma mask" to limit the increase in saturation for colors that are already saturated. So here's one way to make and apply a "Chroma mask":
- Let the original image that you want to make more saturated be Layer 1.
- Make a copy of the original image (call it Layer 2), and use "Colors/Saturation" to raise the Chroma values proportionately, or else use the Chroma slider from "Colors/Hue-Chroma" if you want to emphasize low Chroma colors.
- Make a copy of the "increased Chroma" layer (call it Layer 3), and use "Colors/Component/Extract Component" to extract the Chroma channel, making sure to check the "Invert component" box and the "Linear output" box.
- Add a grayscale layer mask to the extracted Chroma layer (still Layer 3), and turn the mask into a selection.
- Add the selection as a mask to Layer 2, and then make Layer 3 be invisible, or if you prefer, delete Layer 3 as being no longer necessary.
I'm not convinced that the above steps for making a Chroma mask is the best possible procedure, but the resulting mask does work fairly well and of course can be fine-tuned by editing the mask itself. I usually at least apply "Auto/Stretch Contrast" to maximize the tonal range on the mask. Sometimes I also darken the chroma mask using the Levels Gamma slider. And of course there is always the option of making selections and modifying the mask by hand.
In the world of digital imaging, it seems that increasing saturation is much more popular than decreasing saturation. But if the goal is to lower the saturation of an image, then of course just invert the Chroma mask to protect the colors that are already not very saturated.
When to use the Hue-Chroma tool?
When adding saturation to an image, generally speaking using the GEGL Saturation tool does a better job than using the Hue-Chroma tool's Chroma slider. The GEGL Saturation slider increases Chroma proportionately; the Chroma slider increases Chroma by the same amount regardless of the original color's Chroma.
So if GEGL Saturation usually makes a nicer result when adding saturation to an image, what good is the Hue-Chroma tool?
I use the Hue-Chroma tool a lot, but usually not for adding saturation to an entire image. Instead I use this tool for modifying individual colors that I've already selected (whether to paint with, or for toning or recoloring a black and white image, or etc), by modifying one, two, or all three of the color's original LCH values by varying amounts. I do this when I'm applying colors to portions of an image either via a solid color layer as revealed by a layer mask (for cases where I realize I want to somewhat or even drastically modify the entire color layer), or else by using a brush to paint color painting directly on a layer (for cases where I want to paint more or less closely related colors onto the layer).
Clearing up some sloppy terminology, plus a third way to add saturation to an image
Clearing up sloppy terminology
OK, this little tutorial has used sloppy terminology and so has completely glossed over the differences between Chroma, Saturation, and Colorfulness.
So what is the difference between Chroma, Saturation, and Colorfulness? Well, "Saturation" is a much-used and abused term that has (at least) two very different technical meanings and also an "every day" meaning:
- One technical use of "Saturation" is to refer to the "S" component of the various RGB-derived HS"X" color spaces, including HSV and HSL. Although these HS"X" color spaces all use the same definition of Hue, the calculations for "Saturation" vary from one HS"X" color space to the next. None of these RGB-derived calculations for Saturation or Hue are the same as LCH Chroma and Hue. See HSL and HSV for a nice description of the HS"X" color spaces, plus an overview of why these color spaces were invented in the first place (basically for fast computation on computers from the 1990's), along with some disadvantages of using these color spaces to modify image colors.
- The other technical use for "Saturation" is when speaking about color appearance models. For a very short and readable description of color appearance models, see Mark Fairchild's wonderful Why Is Color. For an in-depth technical review of various color appearance models, see Fairchild's Color Appearance Models.
- The "every day" meaning of "saturation" probably swings back and forth between the "color appearance model" meanings of "colorfulness" and "saturation" (see below for a brief overview of these terms when used in the context of color appearance models), and almost certainly never refers to that aspect of color that's captured by LCH Chroma.
On the one hand, when the topic is color appearance models, the actual nitty-gritty details for measuring/calculating Chroma, Saturation, Colorfulness, Brightness, and Lightness vary from one color appearance model to the next. But Section 4.8 of the 2013 edition of Fairchild's Color Apperance Models gives some simplified equations relating Chroma, Saturation, Colorfulness, Brightness, and Lightness. Equation 4.4 says that in color appearance models "Saturation" is the ratio of "Chroma" to "Lightness".
On the other hand, LAB/LCH (LCH is a polar transform of LAB) is not a color appearance model, but rather a model for measuring color differences, to which the concept of "Saturation" doesn't actually apply. But the Wikipedia article on Colorfulness suggests that the ratio of LCH Chroma to Lightness is a reasonable correlate to Saturation as used in color appearance models.
Now what about Colorfulness? The equations in Section 4.8 of the 2013 edition of Fairchild's Color Appearance Models say that Colorfulness is Chroma times the Brightness of White, and also the same as Brightness times Saturation — the two equations produce the same result once you factor in the equations for Brightness, Brightness of White, Chroma, and Saturation. Which in practical terms means that "Colorfulness" takes into account that we do perceive brighter saturated colors as "more colorful" than darker saturated colors.
Please keep in mind that I'm still trying to figure out this whole concept of color appearance models, so take anything I say on the topic as "learning in progress, subject to mistakes and revisions". If you are interested in learning more about color appearance models, I highly recommend spending some quality time experimenting with RawTherapee's CIECAM02 module. You'll learn a lot and probably add a few new editing techniques to your arsenal of digital darkroom tools.
A third way to add LCH "Saturation" to an image:
Here is an experiment to try in your own digital darkroom:
- Start high bit depth GIMP and open a color image that's not already very colorful. I'm assuming you are using default GIMP 2.9, so make sure to convert the image to GIMP's built-in sRGB color space, if it's not already in the regular sRGB color space. (If you are using my "CCE" version of GIMP, then make sure to convert the image to a linear gamma RGB color space.)
- Duplicate the image layer and set the Layer blend mode of the duplicated layer to LCH Chroma blend. This should cause absolutely no change at all in the image's appearance (using "appearance" in the everyday meaning of what the image looks like on the screen rather than as a reference to color appearance models).
- Keeping the blend mode as "LCH Chroma", use "Colors/Exposure" to add 1 or more stops of positive exposure compensation to the duplicated layer.
What happens to the image colors when you added positive exposure compensation to the duplicated layer? What about if you add negative exposure compensation? How does this third way to add (or remove) "saturation/chroma/colorfulness" compare to using "Colors/Saturation"? Bonus points if you can explain why this third method works! Here's a hint: This little trick is basically a sort of "inverse" of using Luminance blend mode to keep Colorfulness (or is it Saturation?) constant while modifying tonality.