Saturation
Step: Finish
Makes the colors of the image stronger or weaker without changing how bright any pixel is. Use it after the image has been stretched: a stretched astro image often looks pale, and a little more saturation brings out the blue of reflection nebulae, the red of hydrogen regions and the color differences between stars.
The module needs a color image. A mono image, or a Bayer mosaic that has not been debayered, is rejected.
Parameters
| Parameter | Range | Default | Effect |
|---|---|---|---|
| Saturation | 0…3 | 1 | The color factor. 1 changes nothing, values above 1 make the colors stronger, values below 1 weaker. 0 turns the image gray. |
| Background protection | 0…1 | 0 | Holds the change back in dark pixels, so the colored noise of the sky background is not boosted along with the colors. 0 switches the protection off. |
When to use it
Use it at the end of the color work, after Arcsinh Stretch or Histogram Stretch, and after Color Calibration and Green Removal. Color noise in the background grows with the saturation: when you raise Saturation and the sky turns speckled, raise Background protection until the background calms down.
How it works
The brightness L of a pixel is the mean of its three channels:
L = (R + G + B) / 3Every channel c moves along the line to or from this gray value by the factor s:
c' = L + s × (c − L)With s = 1 every pixel stays exactly as it is. With s = 0 all three channels become L, a gray with the same brightness as before. With s = 2 the distance of every channel to gray doubles. The mean of the new channels is L again, so the brightness of the pixel does not change.
Background protection weakens the factor for dark pixels. The effective factor is
s_eff = 1 + (s − 1) × w(L)where the weight w rises smoothly from 0 for a black pixel to 1 at the brightness knee = 0.5 × protection and stays at 1 above it (a smoothstep curve: t = L / knee, w = t² × (3 − 2t)). A protection of 0 gives w = 1 everywhere. The higher the protection, the further up the weight starts to fade in: at 1, pixels from about half of full brightness upward get the full factor. The weight works in both directions, so with s below 1 the dark pixels keep more of their color, too.
The result is not clamped. A strong increase can push a channel below 0 or above 1; the display and the export clamp it. A pixel with no value in one of its channels is left as it is. The file information (exposure time, filter and so on) is kept.
Sources
- P. Haeberli, D. Voorhies, "Image Processing by Linear Interpolation and Extrapolation", IRIS Universe 28, Silicon Graphics, 1994 (saturation as moving away from or towards the gray image; Siderea uses the plain mean of the channels as the gray value).
- The Khronos Group, The OpenGL Shading Language specification, function
smoothstep(the curve of the background protection).
Errors
- Saturation needs a color image. The image has one channel. If it is a mosaic from a one-shot-color camera, run Debayer first.